diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..1b0e5a9 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,56 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +*.egg-info/ +dist/ +build/ +*.egg + +# Virtual environments +.venv/ +venv/ +ENV/ +env/ + +# Testing +.pytest_cache/ +.coverage +htmlcov/ +.mypy_cache/ +.ruff_cache/ + +# IDE +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# Git +.git/ +.gitignore + +# Documentation +*.md +!README.md +docs/ + +# CI/CD +.github/ + +# Environment files (include these at runtime instead) +.env +.env.local +.env.*.local + +# UV cache +.uv/ + +# macOS +.DS_Store + +# Tests +tests/ diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..c755b4f --- /dev/null +++ b/.env.example @@ -0,0 +1,26 @@ +# Backend Configuration +# Supported backends: jaeger, tempo, traceloop +BACKEND_TYPE=jaeger + +# Backend URL (required) +# Examples: +# Jaeger: http://localhost:16686 +# Tempo: http://localhost:3200 +# Traceloop: https://api.traceloop.com/v2 +BACKEND_URL=http://localhost:16686 + +# Optional: API key for authenticated backends (mainly for Traceloop) +BACKEND_API_KEY= + +# Optional: Comma-separated list of environments for Traceloop backend (default: production) +# Only used when BACKEND_TYPE=traceloop +BACKEND_ENVIRONMENTS=production + +# Optional: Request timeout in seconds (default: 30) +BACKEND_TIMEOUT=30 + +# Optional: Logging level (DEBUG, INFO, WARNING, ERROR) +LOG_LEVEL=INFO + +# Optional: Maximum traces per query (default: 100, max: 1000) +MAX_TRACES_PER_QUERY=100 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..de3b767 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,77 @@ +name: CI + +on: + push: + branches: ["main"] + pull_request: + types: [opened, synchronize] + +jobs: + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup UV + uses: astral-sh/setup-uv@v3 + with: + version: "latest" + enable-cache: true + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + - name: Install dependencies + run: uv sync --dev + - name: Lint with Ruff + run: uv run ruff check --output-format=github + - name: Lint with Mypy + run: uv run mypy . + test: + name: Test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup UV + uses: astral-sh/setup-uv@v3 + with: + version: "latest" + enable-cache: true + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.12" + - name: Install dependencies + run: uv sync --dev + - name: Test with pytest + run: uv run pytest + build-test: + needs: test + runs-on: ubuntu-latest + strategy: + matrix: + platform: [amd64, arm64] + include: + - platform: amd64 + runs-on: ubuntu-latest + docker-platform: linux/amd64 + - platform: arm64 + runs-on: Linux-ARM64 + docker-platform: linux/arm64 + steps: + - uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Create GH token file + run: echo "${{ secrets.GH_ACCESS_TOKEN }}" > gh_token.txt + + - name: Docker Build + uses: docker/build-push-action@v6 + with: + platforms: ${{ matrix.docker-platform }} + context: . + push: false + secret-files: | + "gh_token=gh_token.txt" diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..e4fba21 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.12 diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..60a4022 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,577 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +Opentelemetry MCP Server (`opentelemetry-mcp`) is an MCP (Model Context Protocol) server that enables AI agents to query and analyze OpenTelemetry traces from LLM applications. It parses Opentelemetry semantic conventions (the `gen_ai.*` attributes) to enable automated debugging and observability. + +**Key Features:** +- Multi-backend support: Jaeger, Grafana Tempo, and Traceloop +- 9 MCP tools: Core tools + LLM-oriented discovery and analysis tools +- Token usage tracking and aggregation across models/services +- Finish reasons tracking for debugging truncated/filtered responses +- Enhanced token calculation supporting all `gen_ai.usage.*` attributes +- Dual transport modes: stdio (Claude Desktop) and HTTP/SSE (network access) + +## Development Commands + +**Package Manager:** This project uses UV (not pip). All commands should use `uv run`. + +```bash +# Install dependencies +uv sync + +# Run the server (stdio transport for Claude Desktop) +uv run opentelemetry-mcp + +# Run with HTTP transport +uv run opentelemetry-mcp --transport http --port 8000 + +# Override backend configuration +uv run opentelemetry-mcp --backend jaeger --url http://localhost:16686 + +# Run all tests +uv run pytest + +# Run with coverage +uv run pytest --cov=opentelemetry_mcp --cov-report=html + +# Run specific test file +uv run pytest tests/test_models.py + +# Format code (always run before committing) +uv run ruff format . + +# Lint code +uv run ruff check . + +# Type check (strict mode, must pass) +uv run mypy src/ +``` + +## Architecture + +### Backend Abstraction Pattern + +All trace storage backends implement the `BaseBackend` abstract interface in [opentelemetry_mcp/backends/base.py](opentelemetry_mcp/backends/base.py): + +```python +class BaseBackend(ABC): + @abstractmethod + async def search_traces(self, query: TraceQuery) -> list[TraceData]: ... + @abstractmethod + async def search_spans(self, query: SpanQuery) -> list[SpanData]: ... + @abstractmethod + async def get_trace(self, trace_id: str) -> TraceData: ... + @abstractmethod + async def list_services(self) -> list[str]: ... + @abstractmethod + async def get_service_operations(self, service: str) -> list[str]: ... + @abstractmethod + async def health_check(self) -> bool: ... +``` + +Concrete implementations: +- [backends/jaeger.py](opentelemetry_mcp/backends/jaeger.py) - Jaeger backend +- [backends/tempo.py](opentelemetry_mcp/backends/tempo.py) - Grafana Tempo backend +- [backends/traceloop.py](opentelemetry_mcp/backends/traceloop.py) - Traceloop backend + +### Tool-Based Architecture + +Each MCP capability is implemented as a separate tool module in [opentelemetry_mcp/tools/](opentelemetry_mcp/tools/): + +**Core Tools:** +- [tools/search.py](opentelemetry_mcp/tools/search.py) - Search traces with filters +- [tools/search_spans.py](opentelemetry_mcp/tools/search_spans.py) - Search individual spans with filters +- [tools/trace.py](opentelemetry_mcp/tools/trace.py) - Get detailed trace by ID +- [tools/usage.py](opentelemetry_mcp/tools/usage.py) - Aggregate token usage metrics +- [tools/services.py](opentelemetry_mcp/tools/services.py) - List available services +- [tools/errors.py](opentelemetry_mcp/tools/errors.py) - Find traces with errors + +**LLM-Oriented Tools (Discovery & Analysis):** +- [tools/list_models.py](opentelemetry_mcp/tools/list_models.py) - List all models in use with statistics +- [tools/model_stats.py](opentelemetry_mcp/tools/model_stats.py) - Performance stats for a specific model +- [tools/expensive_traces.py](opentelemetry_mcp/tools/expensive_traces.py) - Find highest token usage traces +- [tools/slow_traces.py](opentelemetry_mcp/tools/slow_traces.py) - Find slowest LLM traces +- [tools/list_llm_tools.py](opentelemetry_mcp/tools/list_llm_tools.py) - List LLM tools used (via traceloop.span.kind == tool) + +**Critical:** All tools MUST return JSON strings (not dicts). This is required by the MCP protocol. + +```python +# Correct +return json.dumps({"result": data}) + +# Incorrect - will break MCP protocol +return {"result": data} +``` + +### Key Components + +- [server.py](opentelemetry_mcp/server.py) - FastMCP application, CLI interface, tool handlers +- [config.py](opentelemetry_mcp/config.py) - Pydantic configuration models +- [models.py](opentelemetry_mcp/models.py) - Core data models (SpanData, TraceData, UsageMetrics) +- [attributes.py](opentelemetry_mcp/attributes.py) - Strongly-typed OpenTelemetry attribute models + +## Configuration + +**Environment Variables** (see [.env.example](.env.example)): +- `BACKEND_TYPE` - Required: `jaeger`, `tempo`, or `traceloop` +- `BACKEND_URL` - Required: Backend API endpoint +- `BACKEND_API_KEY` - Optional: Authentication key +- `BACKEND_TIMEOUT` - Optional: Request timeout (default: 30s) +- `LOG_LEVEL` - Optional: Logging level (default: INFO) +- `MAX_TRACES_PER_QUERY` - Optional: Result limit (default: 100) + +**Configuration Precedence:** CLI args > environment variables > defaults + +## Opentelemetry Semantic Conventions + +The server parses both current and legacy Opentelemetry conventions: + +**Primary (gen_ai.*):** +- `gen_ai.system` - LLM provider (e.g., "openai", "anthropic") +- `gen_ai.request.model` - Model name (e.g., "gpt-4", "claude-3-opus") +- `gen_ai.usage.prompt_tokens` / `gen_ai.usage.input_tokens` - Input tokens +- `gen_ai.usage.completion_tokens` / `gen_ai.usage.output_tokens` - Output tokens +- `gen_ai.response.finish_reasons` - Completion reasons + +**Legacy (llm.*):** Supported for backward compatibility +- `llm.system`, `llm.request.model`, etc. + +**Token Naming Variations:** +- OpenAI: `prompt_tokens`, `completion_tokens` +- Anthropic: `input_tokens`, `output_tokens` + +Parse attributes using: `LLMSpanAttributes.from_span(span_data)` + +## Key Development Patterns + +### 1. Type Safety +- Full type annotations required (MyPy strict mode) +- Use Pydantic models for all data structures +- Type checking must pass before committing + +### 2. Async-First +- All backend operations are async +- Use `async with` for backend context managers +- Always `await` backend method calls + +### 3. Pydantic Models +- Use for data validation and serialization +- Serialize with `model_dump(mode="json")` for JSON output +- Models automatically handle validation and type conversion + +### 4. Error Handling +- Tools should catch exceptions and return JSON with `error` field +- Backend health checks are non-blocking +- Server starts even if backend is initially unhealthy + +### 5. Adding New Backends +1. Create new file in [opentelemetry_mcp/backends/](opentelemetry_mcp/backends/) +2. Extend `BaseBackend` class +3. Implement all abstract methods +4. Add to backend factory in [config.py](opentelemetry_mcp/config.py) + +### 6. Adding New Tools +1. Create new module in [opentelemetry_mcp/tools/](opentelemetry_mcp/tools/) +2. Implement tool function that takes backend and returns JSON string +3. Register in [server.py](opentelemetry_mcp/server.py) using `@mcp.tool()` + +## LLM-Oriented Tools + +The server provides specialized tools optimized for LLM observability and cost optimization: + +### `list_llm_models` - Model Discovery +Lists all LLM models being used with usage statistics. + +**Use Cases:** +- Discover shadow AI usage (unauthorized models) +- Track model adoption across services +- Identify deprecated models still in use + +**Parameters:** +- `start_time`, `end_time` - Time range filter +- `service_name` - Filter by service +- `gen_ai_system` - Filter by provider (openai, anthropic, etc.) +- `limit` - Max traces to analyze (default: 1000) + +**Returns:** List of models with `request_count`, `first_seen`, `last_seen` + +**Example:** "What models is my production service using?" + +### `get_llm_model_stats` - Performance Analysis +Get detailed performance statistics for a specific model including latency percentiles, token usage, error rates, and finish reason distributions. + +**Use Cases:** +- Compare model performance (gpt-4 vs claude-3-opus) +- Identify problematic models with high error rates +- Analyze finish reasons to detect truncation issues + +**Parameters:** +- `model_name` - Model to analyze (required) +- `start_time`, `end_time` - Time range filter +- `service_name` - Filter by service + +**Returns:** +- Request/success/error counts and rates +- Duration percentiles (mean, median, p50, p95, p99) +- Token usage percentiles (prompt, completion, total) +- Finish reasons breakdown + +**Example:** "How is gpt-4 performing this week?" + +### `get_llm_expensive_traces` - Cost Optimization +Find traces with highest token usage for cost optimization. + +**Use Cases:** +- Identify inefficient prompts consuming excessive tokens +- Find runaway requests with huge context windows +- Prioritize optimization efforts on high-cost operations + +**Parameters:** +- `limit` - Number of traces to return (default: 10) +- `start_time`, `end_time` - Time range filter +- `min_tokens` - Minimum token threshold +- `service_name`, `gen_ai_request_model`, `gen_ai_response_model` - Filters + +**Returns:** Top N traces sorted by total tokens with breakdown (prompt/completion/total) + +**Example:** "Show me the 10 most expensive requests today" + +### `get_llm_slow_traces` - Performance Optimization +Find slowest LLM traces by duration to identify latency bottlenecks. + +**Use Cases:** +- Identify slow operations affecting user experience +- Debug timeout issues +- Optimize critical path operations + +**Parameters:** +- `limit` - Number of traces to return (default: 10) +- `start_time`, `end_time` - Time range filter +- `min_duration_ms` - Minimum duration threshold +- `service_name`, `gen_ai_request_model`, `gen_ai_response_model` - Filters + +**Returns:** Top N traces sorted by duration with token counts and model info + +**Example:** "What are the slowest LLM calls in the last hour?" + +## Enhanced Token Calculation + +The server uses an intelligent token calculation strategy that searches for ALL `gen_ai.usage.*` attributes: + +1. **Primary:** Use explicit `gen_ai.usage.total_tokens` if present +2. **Fallback 1:** Sum all numeric `gen_ai.usage.*` attributes found +3. **Fallback 2:** Calculate as `prompt_tokens + completion_tokens` + +This ensures compatibility with custom token metrics beyond standard prompt/completion/total (e.g., `gen_ai.usage.cached_tokens`, `gen_ai.usage.reasoning_tokens`). + +## Finish Reasons Support + +The `gen_ai.response.finish_reasons` attribute is now fully supported for debugging: + +**Common Finish Reasons:** +- `stop` - Normal completion +- `length` - Hit max_tokens limit (response truncated) +- `content_filter` - Content policy violation +- `tool_calls` / `function_call` - Model requested tool/function execution + +**Use Cases:** +- Identify truncated responses: Filter for `finish_reason = "length"` +- Debug content filter issues: Find traces with `finish_reason = "content_filter"` +- Analyze tool usage: Count `finish_reason = "tool_calls"` + +**Supported in:** +- `get_llm_model_stats` - Finish reason distribution breakdown +- Parsed in `LLMSpanAttributes` for all LLM spans + +## Generic Filter System + +The `search_traces` tool supports a powerful generic filter system in addition to legacy simple parameters. + +### Filter Structure + +Each filter is an object with: +- **field**: Field name in dotted notation (e.g., `"gen_ai.usage.prompt_tokens"`) +- **operator**: Comparison operator (see below) +- **value**: Single value for most operators +- **values**: List of values for `in`, `not_in`, `between` operators +- **value_type**: Type of value(s) - `"string"`, `"number"`, or `"boolean"` + +### Supported Operators + +**String Operators:** +- `equals`, `not_equals` - Exact string match/mismatch +- `contains`, `not_contains` - Substring match/mismatch +- `starts_with`, `ends_with` - Prefix/suffix match +- `in`, `not_in` - Match against list of values + +**Number Operators:** +- `equals`, `not_equals` - Exact numeric match/mismatch +- `gt`, `lt`, `gte`, `lte` - Greater than, less than, greater/less or equal +- `between` - Range check (requires 2 values) +- `in`, `not_in` - Match against list of values + +**Boolean Operators:** +- `equals`, `not_equals` - Boolean match/mismatch + +**Existence Operators:** +- `exists`, `not_exists` - Check if attribute exists (no value needed) + +### Filter Examples + +**Find expensive traces (>5000 tokens):** +```json +{ + "field": "gen_ai.usage.total_tokens", + "operator": "gt", + "value": 5000, + "value_type": "number" +} +``` + +**Filter by multiple models:** +```json +{ + "field": "gen_ai.request.model", + "operator": "in", + "values": ["gpt-4", "gpt-4-turbo", "claude-3-opus"], + "value_type": "string" +} +``` + +**Find traces with temperature between 0.7 and 1.0:** +```json +{ + "field": "gen_ai.request.temperature", + "operator": "between", + "values": [0.7, 1.0], + "value_type": "number" +} +``` + +**Find streaming requests:** +```json +{ + "field": "gen_ai.request.is_streaming", + "operator": "equals", + "value": true, + "value_type": "boolean" +} +``` + +**Check if attribute exists:** +```json +{ + "field": "gen_ai.request.temperature", + "operator": "exists", + "value_type": "number" +} +``` + +**Filter by service name containing "prod":** +```json +{ + "field": "service.name", + "operator": "contains", + "value": "prod", + "value_type": "string" +} +``` + +### Hybrid Filtering + +The server uses a hybrid filtering strategy: + +1. **Native Filtering**: Filters are pushed to the backend when supported +2. **Client-Side Filtering**: Unsupported filters are applied after fetching + +**Backend Support:** + +| Backend | Supported Operators | Notes | +|---------|---------------------|-------| +| **Tempo (TraceQL)** | equals, not_equals, gt, lt, gte, lte, contains (regex), in (OR logic), exists, not_exists | - | +| **Traceloop** | equals, not_equals, gt, lt, gte, lte | - | +| **Jaeger** | equals (via tags only) | **Requires service_name parameter** | + +### Combining Filters + +Multiple filters are combined with AND logic. Examples: + +**Find expensive OpenAI traces:** +```json +{ + "filters": [ + { + "field": "gen_ai.system", + "operator": "equals", + "value": "openai", + "value_type": "string" + }, + { + "field": "gen_ai.usage.total_tokens", + "operator": "gt", + "value": 5000, + "value_type": "number" + } + ] +} +``` + +**Find errors in production:** +```json +{ + "filters": [ + { + "field": "service.name", + "operator": "contains", + "value": "prod", + "value_type": "string" + }, + { + "field": "status", + "operator": "equals", + "value": "ERROR", + "value_type": "string" + } + ] +} +``` + +### Backward Compatibility + +Legacy simple parameters (service_name, gen_ai_request_model, gen_ai_response_model, etc.) still work and are automatically converted to filters internally. You can mix legacy parameters with explicit filters. + +### Backend-Specific Requirements + +**Jaeger Backend - service_name Required:** + +The Jaeger backend requires the `service_name` parameter for both `search_traces` and `search_spans` operations. This is because: +- Jaeger's API is optimized for per-service queries +- Querying all services would be very expensive (especially for spans) +- Users can easily discover services first using `list_services()` + +**Example workflow:** +```python +# 1. First, list available services +services = list_services() + +# 2. Then query a specific service +traces = search_traces(service_name="my-service") +spans = search_spans(service_name="my-service") +``` + +**Error message if service_name is missing:** +``` +ValueError: Jaeger backend requires 'service_name' parameter. +Use list_services() to see available services, then specify one with service_name parameter. +``` + +**Other backends (Tempo, Traceloop):** service_name is optional - they support querying across all services. + +## Span Search and LLM Tools Discovery + +### `search_spans` - Individual Span Search + +Unlike `search_traces` which returns grouped traces, `search_spans` returns individual spans. This is useful for analyzing specific operations or finding spans with certain characteristics. + +**Key Features:** +- Search for individual spans across all traces +- Apply filters to span-level attributes +- Useful for finding specific LLM operations (e.g., tool calls, specific model usage) + +**Use Cases:** +- Find all LLM tool calls: Filter by `traceloop.span.kind == tool` +- Find all spans using a specific model +- Identify spans with specific attributes or errors +- Analyze individual operation performance + +**Example - Find LLM tool calls:** +```python +{ + "filters": [ + { + "field": "traceloop.span.kind", + "operator": "equals", + "value": "tool", + "value_type": "string" + } + ], + "limit": 100 +} +``` + +**Returns:** List of `SpanSummary` objects containing: +- `trace_id`, `span_id`, `parent_span_id` +- `operation_name`, `service_name` +- `start_time`, `duration_ms`, `status` +- `is_llm_span`, `gen_ai_system` +- `total_tokens` (for LLM spans) + +### `list_llm_tools` - Discover LLM Tool Usage + +Automatically discovers which tools/functions LLM applications are calling by identifying spans with `traceloop.span.kind == tool`. + +**Key Features:** +- Groups tool calls by tool name +- Shows usage statistics per tool +- Tracks which services use each tool +- Provides first/last seen timestamps + +**Use Cases:** +- Discover what tools your LLM agents are using +- Track tool adoption across services +- Identify most/least used tools +- Monitor tool usage patterns over time + +**Parameters:** +- `start_time`, `end_time` - Time range filter +- `service_name` - Filter by service +- `gen_ai_system` - Filter by LLM provider +- `limit` - Max spans to analyze (default: 1000) + +**Returns:** List of tools with: +- `tool_name` - Name of the tool/function +- `usage_count` - Number of times called +- `services` - List of services using this tool +- `first_seen`, `last_seen` - Time range of usage + +**Example Query:** "What tools is my production service using?" + +**Example Response:** +```json +{ + "count": 5, + "total_calls": 127, + "tools": [ + { + "tool_name": "search_database", + "usage_count": 45, + "services": ["chatbot-service", "qa-service"], + "first_seen": "2024-01-01T10:00:00Z", + "last_seen": "2024-01-02T15:30:00Z" + }, + { + "tool_name": "web_search", + "usage_count": 38, + "services": ["research-agent"], + "first_seen": "2024-01-01T09:00:00Z", + "last_seen": "2024-01-02T16:00:00Z" + } + ] +} +``` + +## Testing + +- Use pytest with async support (pytest-asyncio) +- Fixtures defined in [tests/conftest.py](tests/conftest.py) +- Mock backend responses for tool tests +- All tests must pass before merging + +## Python Version + +- Minimum: Python 3.11 +- CI uses: Python 3.12 +- Version file: [.python-version](.python-version) diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..bdb08c5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,69 @@ +# Multi-stage build for OpenTelemetry MCP Server + +# Stage 1: Builder with official UV image +FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim AS builder + +# Enable bytecode compilation for faster startup and use copy mode +ENV UV_COMPILE_BYTECODE=1 UV_LINK_MODE=copy + +# Disable Python downloads to use system interpreter +ENV UV_PYTHON_DOWNLOADS=0 + +# Set working directory +WORKDIR /app + +# Install dependencies first (cached layer) - this layer is cached between builds +# Uses bind mounts to avoid copying files into intermediate layers +RUN --mount=type=cache,target=/root/.cache/uv \ + --mount=type=bind,source=uv.lock,target=uv.lock \ + --mount=type=bind,source=pyproject.toml,target=pyproject.toml \ + --mount=type=bind,source=README.md,target=README.md \ + uv sync --frozen --no-install-project --no-dev + +# Copy application code and install project +COPY . /app +RUN --mount=type=cache,target=/root/.cache/uv \ + uv sync --frozen --no-dev + +# Stage 2: Runtime - Minimal production image +FROM python:3.12-slim-bookworm AS runtime + +# Copy the entire app with virtual environment from builder +COPY --from=builder /app /app + +# Set working directory +WORKDIR /app + +# Create non-root user for security +RUN useradd -m -u 1000 mcpuser && \ + chown -R mcpuser:mcpuser /app + +# Switch to non-root user +USER mcpuser + +# Add virtual environment to PATH +ENV PATH="/app/.venv/bin:$PATH" + +# Expose port for HTTP transport +EXPOSE 8000 + +# Environment variables (can be overridden at runtime) +# Note: BACKEND_API_KEY should be provided at runtime via: +# - docker run -e BACKEND_API_KEY=secret +# - Docker Compose environment files +# - Kubernetes secrets +# - .env files mounted at runtime +ENV BACKEND_TYPE="" \ + BACKEND_URL="" \ + BACKEND_TIMEOUT="30" \ + LOG_LEVEL="INFO" \ + MAX_TRACES_PER_QUERY="100" + +# Health check (optional - checks if the process is running) +HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ + CMD python -c "import sys; sys.exit(0)" + +# Default command: Run server in HTTP transport mode +# Override with docker run command or docker-compose for different configurations +ENTRYPOINT ["opentelemetry-mcp"] +CMD ["--transport", "http", "--host", "0.0.0.0", "--port", "8000"] diff --git a/README.md b/README.md index fde5eeb..e10be3a 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,599 @@ -# opentelemetry-mcp-server +# OpenTelemetry-MCP-Server Unified MCP server for querying OpenTelemetry traces across multiple backends (Jaeger, Tempo, Traceloop, etc.), enabling AI agents to analyze distributed traces for automated debugging and observability. + +An MCP (Model Context Protocol) server for querying OpenTelemetry traces from LLM applications, with specialized support for OpenLLMetry semantic conventions. + +## Features + +- **Multiple Backend Support**: Query traces from Jaeger, Grafana Tempo, or Traceloop +- **OpenLLMetry Integration**: Automatic parsing of `gen_ai.*` semantic conventions +- **5 Powerful Tools**: + - `search_traces` - Search traces with advanced filters + - `get_trace` - Get complete trace details + - `get_llm_usage` - Aggregate token usage metrics + - `list_services` - List available services + - `find_errors` - Find traces with errors +- **Token Usage Tracking**: Aggregate prompt/completion tokens across models and services +- **CLI Overrides**: Configure via environment or command-line arguments +- **Type-Safe**: Built with Pydantic for robust data validation + +## Installation + +### Prerequisites + +- Python 3.11 or higher +- [UV package manager](https://github.com/astral-sh/uv) (recommended) or pip + +### Install with UV + +```bash +# Clone the repository +cd openllmetry-mcp + +# Install dependencies +uv sync + +# Or install in development mode +uv pip install -e ".[dev]" +``` + +### Install with pip + +```bash +pip install -e . +``` + +## Quick Start + +The easiest way to run the server locally is using the provided startup script: + +```bash +# 1. Configure your backend in start_locally.sh +# Edit the file and uncomment your preferred backend (Jaeger, Traceloop, or Tempo) + +# 2. Run the script +./start_locally.sh +``` + +The script will: +- Auto-detect the project directory (works from anywhere) +- Verify `uv` is installed +- Set up your backend configuration +- Start the MCP server in stdio mode (ready for Claude Desktop) + +**Supported Backends:** +- **Jaeger** (local): `http://localhost:16686` +- **Traceloop** (cloud): `https://api.traceloop.com` (requires API key) +- **Tempo** (local): `http://localhost:3200` + +Edit [start_locally.sh](start_locally.sh) to switch between backends or adjust configuration. + +## Configuration + +### Environment Variables + +Create a `.env` file (see `.env.example`): + +```bash +# Backend type: jaeger, tempo, or traceloop +BACKEND_TYPE=jaeger + +# Backend URL +BACKEND_URL=http://localhost:16686 + +# Optional: API key (mainly for Traceloop) +BACKEND_API_KEY= + +# Optional: Request timeout (default: 30s) +BACKEND_TIMEOUT=30 + +# Optional: Logging level +LOG_LEVEL=INFO + +# Optional: Max traces per query (default: 100) +MAX_TRACES_PER_QUERY=100 +``` + +### Backend-Specific Configuration + +#### Jaeger + +```bash +BACKEND_TYPE=jaeger +BACKEND_URL=http://localhost:16686 +``` + +#### Grafana Tempo + +```bash +BACKEND_TYPE=tempo +BACKEND_URL=http://localhost:3200 +``` + +#### Traceloop + +```bash +BACKEND_TYPE=traceloop +BACKEND_URL=https://api.traceloop.com/v2 +BACKEND_API_KEY=your_api_key_here +``` + +**Note**: The API key contains the project information. The backend uses a hardcoded project slug of `"default"` and Traceloop resolves the actual project and environment from the API key. + +### CLI Overrides + +You can override environment variables with CLI arguments: + +```bash +openllmetry-mcp --backend jaeger --url http://localhost:16686 +openllmetry-mcp --backend traceloop --url https://api.traceloop.com --api-key YOUR_KEY +``` + +## Usage + +### Quick Start with start_locally.sh (Recommended) + +The easiest way to run the server: + +```bash +./start_locally.sh +``` + +This script handles all configuration and starts the server in stdio mode (perfect for Claude Desktop integration). To switch backends, simply edit the script and uncomment your preferred backend. + +### Manual Running + +For advanced use cases or custom configurations, you can run the server manually. + +#### stdio Transport (for Claude Desktop) + +Start the MCP server with stdio transport for local/Claude Desktop integration: + +```bash +openllmetry-mcp +# or with UV +uv run openllmetry-mcp + +# With backend override +uv run openllmetry-mcp --backend jaeger --url http://localhost:16686 +``` + +#### HTTP Transport (for Network Access) + +Start the MCP server with HTTP/SSE transport for remote access: + +```bash +# Start HTTP server on default port 8000 +openllmetry-mcp --transport http + +# Or with UV +uv run openllmetry-mcp --transport http + +# Specify custom host and port +uv run openllmetry-mcp --transport http --host 127.0.0.1 --port 9000 +``` + +The HTTP server will be accessible at `http://localhost:8000/sse` by default. + +**Transport Use Cases:** +- **stdio transport**: Local use, Claude Desktop integration, single process +- **HTTP transport**: Remote access, multiple clients, network deployment, sample applications + +### Integrating with Claude Desktop + +Configure the MCP server in your Claude Desktop config file: +- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` +- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` + +#### Why Two Configuration Approaches? + +This server supports **3 different backends** (Jaeger, Tempo, Traceloop). We provide two integration methods to suit different use cases: + +- **Wrapper Script** (`start_locally.sh`) → Easy backend switching for development/testing +- **Direct Configuration** → Standard MCP pattern, better for production or single-backend setups + +Choose the approach that fits your workflow. See [Best Practices](#best-practices-choosing-an-approach) below for guidance. + +#### Option 1: Using start_locally.sh (Recommended for Development) + +**Best for:** Frequent backend switching, local development, testing multiple backends + +```json +{ + "mcpServers": { + "opentelemetry-mcp": { + "command": "/absolute/path/to/opentelemetry-mcp-server/start_locally.sh" + } + } +} +``` + +**Pros:** +- Switch backends by editing one file (`start_locally.sh`) +- Centralized configuration +- Includes validation (checks if `uv` is installed) + +**Cons:** +- Requires absolute path +- macOS/Linux only (no Windows support yet) + +**To switch backends:** Edit `start_locally.sh` and uncomment your preferred backend section. + +#### Option 2: Direct Configuration (Standard MCP Pattern) + +**Best for:** Production, single backend, Windows users, following MCP ecosystem conventions + +##### Jaeger Backend (Local) + +```json +{ + "mcpServers": { + "opentelemetry-mcp-jaeger": { + "command": "uv", + "args": [ + "--directory", + "/absolute/path/to/opentelemetry-mcp-server", + "run", + "opentelemetry-mcp" + ], + "env": { + "BACKEND_TYPE": "jaeger", + "BACKEND_URL": "http://localhost:16686" + } + } + } +} +``` + +##### Tempo Backend (Local) + +```json +{ + "mcpServers": { + "opentelemetry-mcp-tempo": { + "command": "uv", + "args": [ + "--directory", + "/absolute/path/to/opentelemetry-mcp-server", + "run", + "opentelemetry-mcp" + ], + "env": { + "BACKEND_TYPE": "tempo", + "BACKEND_URL": "http://localhost:3200" + } + } + } +} +``` + +##### Traceloop Backend (Cloud) + +```json +{ + "mcpServers": { + "opentelemetry-mcp-traceloop": { + "command": "uv", + "args": [ + "--directory", + "/absolute/path/to/opentelemetry-mcp-server", + "run", + "opentelemetry-mcp" + ], + "env": { + "BACKEND_TYPE": "traceloop", + "BACKEND_URL": "https://api.traceloop.com", + "BACKEND_API_KEY": "your_traceloop_api_key_here" + } + } + } +} +``` + +**Pros:** +- Standard MCP ecosystem pattern +- Works on all platforms (Windows/macOS/Linux) +- Can configure multiple backends simultaneously (use different server names) +- No wrapper script dependency + +**Cons:** +- Must edit JSON config to switch backends +- Backend configuration split between script and config file + +**Tip:** You can configure multiple backends at once (e.g., `opentelemetry-mcp-jaeger` and `opentelemetry-mcp-tempo`) and Claude will show both as available MCP servers. + +### Best Practices: Choosing an Approach + +| Scenario | Recommended Approach | Why | +|----------|---------------------|-----| +| **Development & Testing** | Wrapper Script (`start_locally.sh`) | Easy to switch backends, centralized config | +| **Testing multiple backends** | Wrapper Script | Edit one file to switch, no JSON editing | +| **Production deployment** | Direct Configuration | Standard MCP pattern, explicit configuration | +| **Single backend only** | Direct Configuration | Simpler, no wrapper needed | +| **Windows users** | Direct Configuration | Wrapper script not yet supported on Windows | +| **macOS/Linux users** | Either approach | Choose based on your workflow | +| **Multiple backends simultaneously** | Direct Configuration | Configure all backends with different names | +| **Shared team configuration** | Direct Configuration | More portable, follows MCP conventions | + +**General Guidelines:** + +- **Start with the wrapper script** if you're testing different backends or doing local development +- **Switch to direct configuration** once you've settled on a backend for production use +- **On Windows**, use direct configuration (wrapper script support coming soon) +- **For CI/CD**, use direct configuration with environment variables +- **For shared teams**, document the direct configuration approach for consistency + +**Platform Support:** + +- **macOS/Linux**: Both approaches fully supported +- **Windows**: Direct configuration only (PRs welcome for `.bat`/`.ps1` wrapper scripts!) + +## Tools Reference + +### 1. search_traces + +Search for traces with flexible filtering: + +```python +{ + "service_name": "my-app", + "start_time": "2024-01-01T00:00:00Z", + "end_time": "2024-01-01T23:59:59Z", + "gen_ai_system": "openai", + "gen_ai_model": "gpt-4", + "min_duration_ms": 1000, + "has_error": false, + "limit": 50 +} +``` + +**Parameters:** +- `service_name` - Filter by service +- `operation_name` - Filter by operation +- `start_time` / `end_time` - ISO 8601 timestamps +- `min_duration_ms` / `max_duration_ms` - Duration filters +- `gen_ai_system` - LLM provider (openai, anthropic, etc.) +- `gen_ai_model` - Model name (gpt-4, claude-3-opus, etc.) +- `has_error` - Filter by error status +- `tags` - Custom tag filters +- `limit` - Max results (1-1000, default: 100) + +**Returns:** List of trace summaries with token counts + +### 2. get_trace + +Get complete trace details including all spans and OpenLLMetry attributes: + +```python +{ + "trace_id": "abc123def456" +} +``` + +**Returns:** Full trace tree with: +- All spans with attributes +- Parsed OpenLLMetry data for LLM spans +- Token usage per span +- Error information + +### 3. get_llm_usage + +Get aggregated token usage metrics: + +```python +{ + "start_time": "2024-01-01T00:00:00Z", + "end_time": "2024-01-01T23:59:59Z", + "service_name": "my-app", + "gen_ai_system": "openai", + "limit": 1000 +} +``` + +**Returns:** Aggregated metrics with: +- Total prompt/completion/total tokens +- Breakdown by model +- Breakdown by service +- Request counts + +### 4. list_services + +List all available services: + +```python +{} +``` + +**Returns:** List of service names + +### 5. find_errors + +Find traces with errors: + +```python +{ + "start_time": "2024-01-01T00:00:00Z", + "service_name": "my-app", + "limit": 50 +} +``` + +**Returns:** Error traces with: +- Error messages and types +- Stack traces (truncated) +- LLM-specific error info +- Error span details + +## Example Queries + +### Find expensive LLM operations + +``` +Use search_traces to find traces from the last hour where: +- gen_ai_system is "openai" +- min_duration_ms is 5000 +``` + +### Analyze token usage by model + +``` +Use get_llm_usage for the last 24 hours to see token usage breakdown by model +``` + +### Debug recent errors + +``` +Use find_errors to show all error traces from the last hour +``` + +### Investigate a specific trace + +``` +Use get_trace with trace_id "abc123" to see all spans and LLM attributes +``` + +## OpenLLMetry Semantic Conventions + +This server automatically parses OpenLLMetry semantic conventions: + +### Supported Attributes + +- `gen_ai.system` - Provider (openai, anthropic, cohere, etc.) +- `gen_ai.request.model` - Requested model +- `gen_ai.response.model` - Actual model used +- `gen_ai.operation.name` - Operation type (chat, completion, embedding) +- `gen_ai.request.temperature` - Temperature parameter +- `gen_ai.request.top_p` - Top-p parameter +- `gen_ai.request.max_tokens` - Max tokens +- `gen_ai.usage.prompt_tokens` - Input tokens (also supports `input_tokens` for Anthropic) +- `gen_ai.usage.completion_tokens` - Output tokens (also supports `output_tokens` for Anthropic) +- `gen_ai.usage.total_tokens` - Total tokens + +### Provider Compatibility + +The server handles different token naming conventions: + +- **OpenAI**: `prompt_tokens`, `completion_tokens` +- **Anthropic**: `input_tokens`, `output_tokens` +- **Others**: Falls back to standard OpenLLMetry names + +## Development + +### Running Tests + +```bash +# With UV +uv run pytest + +# With coverage +uv run pytest --cov=openllmetry_mcp --cov-report=html + +# With pip +pytest +``` + +### Code Quality + +```bash +# Format code +uv run ruff format . + +# Lint +uv run ruff check . + +# Type checking +uv run mypy src/ +``` + +### Project Structure + +``` +openllmetry-mcp/ + src/openllmetry_mcp/ +  __init__.py +  server.py # Main MCP server +  config.py # Configuration models +  models.py # Data models +  backends/ # Backend implementations +   base.py # Abstract interface +   jaeger.py # Jaeger backend +   tempo.py # Tempo backend +   traceloop.py # Traceloop backend +  tools/ # MCP tools +  search.py +  trace.py +  usage.py +  services.py +  errors.py + tests/ # Test suite + pyproject.toml # Project configuration + .env.example # Example environment config + README.md +``` + +## Troubleshooting + +### Backend Connection Issues + +```bash +# Test backend connectivity +curl http://localhost:16686/api/services # Jaeger +curl http://localhost:3200/api/search/tags # Tempo +``` + +### Authentication Errors + +Make sure your API key is set correctly: + +```bash +export BACKEND_API_KEY=your_key_here +# Or use --api-key CLI flag +openllmetry-mcp --api-key your_key_here +``` + +### No Traces Found + +- Check time range (use recent timestamps) +- Verify service names with `list_services` +- Check backend has traces: `curl http://localhost:16686/api/services` +- Try searching without filters first + +### Token Usage Shows Zero + +- Ensure your traces have OpenLLMetry instrumentation +- Check that `gen_ai.usage.*` attributes exist in spans +- Verify with `get_trace` to see raw span attributes + +## Future Enhancements + +- [ ] Cost calculation with built-in pricing tables +- [ ] Model performance comparison tools +- [ ] Prompt pattern analysis +- [ ] MCP resources for common queries +- [ ] Caching layer for frequent queries +- [ ] Support for additional backends (SigNoz, ClickHouse) + +## Contributing + +Contributions are welcome! Please ensure: + +1. All tests pass: `pytest` +2. Code is formatted: `ruff format .` +3. No linting errors: `ruff check .` +4. Type checking passes: `mypy src/` + +## License + +MIT License - see LICENSE file for details + +## Related Projects + +- [OpenLLMetry](https://github.com/traceloop/openllmetry) - OpenTelemetry instrumentation for LLMs +- [Model Context Protocol](https://modelcontextprotocol.io/) - MCP specification +- [Claude Desktop](https://claude.ai/download) - AI assistant with MCP support + +## Support + +For issues and questions: +- GitHub Issues: https://github.com/yourusername/openllmetry-mcp/issues +- Traceloop Community: https://traceloop.com/slack diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..cb6194e --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,74 @@ +[project] +name = "opentelemetry-mcp" +version = "0.1.0" +description = "MCP server for querying OpenTelemetry traces from LLM applications with Opentelemetry support" +authors = [ + {name = "Doron Kopit", email = "doron@traceloop.com"}, + {name = "Gal Klienman", email = "gal@traceloop.com"}, + {name = "Nir Gazit", email = "nir@traceloop.com"} +] +readme = "README.md" +requires-python = ">=3.11" +dependencies = [ + "mcp~=1.20.0", + "fastmcp~=2.13.0", + "pydantic~=2.12.0", + "httpx~=0.28.0", + "python-dotenv~=1.2.0", + "click~=8.3.0", + "uvicorn~=0.38.0", + "starlette~=0.50.0", + "opentelemetry-semantic-conventions-ai>=0.4.0", + "opentelemetry-semantic-conventions>=0.48b0", +] + +[project.scripts] +opentelemetry-mcp = "opentelemetry_mcp.server:main" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.uv] + +[dependency-groups] +dev = [ + "pytest~=8.4.0", + "pytest-asyncio~=1.2.0", + "pytest-cov~=7.0.0", + "pytest-recording~=0.13.0", + "mypy~=1.18.0", + "ruff~=0.14.0", + "types-click~=7.1.8", +] + +[tool.ruff] +line-length = 100 +target-version = "py311" + +[tool.ruff.lint] +select = ["E", "F", "I", "N", "W", "UP"] +ignore = ["E501"] + +[tool.ruff.lint.isort] +known-first-party = ["opentelemetry_mcp"] + +[tool.mypy] +python_version = "3.11" +strict = true +warn_return_any = true +warn_unused_configs = true +disallow_untyped_defs = true +ignore_missing_imports = true + +[tool.pytest.ini_options] +asyncio_mode = "auto" +testpaths = ["tests"] +python_files = ["test_*.py"] +python_functions = ["test_*"] +addopts = "--cov=opentelemetry_mcp --cov-report=term-missing" +markers = [ + "unit: Fast unit tests with mocks", + "integration: Integration tests with real backends using VCR recordings", + "vcr: Tests using VCR cassette recordings", +] diff --git a/src/opentelemetry_mcp/__init__.py b/src/opentelemetry_mcp/__init__.py new file mode 100644 index 0000000..9b9dd80 --- /dev/null +++ b/src/opentelemetry_mcp/__init__.py @@ -0,0 +1,3 @@ +"""OpenTelemetry MCP Server - Query OpenTelemetry traces from LLM applications.""" + +__version__ = "0.1.0" diff --git a/src/opentelemetry_mcp/attributes.py b/src/opentelemetry_mcp/attributes.py new file mode 100644 index 0000000..34d4bc3 --- /dev/null +++ b/src/opentelemetry_mcp/attributes.py @@ -0,0 +1,172 @@ +"""Strongly-typed span attribute models following OpenTelemetry semantic conventions.""" + +from typing import Literal + +from pydantic import BaseModel, ConfigDict, Field + +# Note: We import constants for documentation but must use string literals for Pydantic aliases +# due to mypy strict mode requirements +from .constants import GenAI + + +class SpanAttributes(BaseModel): + """ + Strongly-typed span attributes following OpenTelemetry semantic conventions. + + Supports both gen_ai.* (OpenTelemetry standard) and llm.* (legacy Traceloop) naming conventions + through field aliases. The primary access pattern uses gen_ai.* attributes. + + The model allows extra fields through ConfigDict(extra='allow') to support additional + unknown attributes that may be present in span data. + """ + + model_config = ConfigDict(extra="allow", populate_by_name=True) + + # LLM System and Model + gen_ai_system: str | None = Field(None, alias="gen_ai.system") + gen_ai_request_model: str | None = Field(None, alias="gen_ai.request.model") + gen_ai_response_model: str | None = Field(None, alias="gen_ai.response.model") + gen_ai_operation_name: str | None = Field(None, alias="gen_ai.operation.name") + + # Request Parameters + gen_ai_request_temperature: float | None = Field(None, alias="gen_ai.request.temperature") + gen_ai_request_top_p: float | None = Field(None, alias="gen_ai.request.top_p") + gen_ai_request_max_tokens: int | None = Field(None, alias="gen_ai.request.max_tokens") + gen_ai_request_is_streaming: bool | None = Field(None, alias="gen_ai.request.is_streaming") + + # Response Attributes + gen_ai_response_finish_reasons: list[str] | None = Field( + None, alias="gen_ai.response.finish_reasons" + ) + + # Usage Metrics (gen_ai.* format) + gen_ai_usage_prompt_tokens: int | None = Field(None, alias="gen_ai.usage.prompt_tokens") + gen_ai_usage_input_tokens: int | None = Field(None, alias="gen_ai.usage.input_tokens") + gen_ai_usage_completion_tokens: int | None = Field(None, alias="gen_ai.usage.completion_tokens") + gen_ai_usage_output_tokens: int | None = Field(None, alias="gen_ai.usage.output_tokens") + gen_ai_usage_total_tokens: int | None = Field(None, alias="gen_ai.usage.total_tokens") + + # Legacy llm.* attributes (for backward compatibility with Traceloop) + llm_vendor: str | None = Field(None, alias="llm.vendor") + llm_request_model: str | None = Field(None, alias="llm.request.model") + llm_response_finish_reasons: list[str] | None = Field(None, alias="llm.response.finish_reasons") + llm_usage_prompt_tokens: int | None = Field(None, alias="llm.usage.prompt_tokens") + llm_usage_input_tokens: int | None = Field(None, alias="llm.usage.input_tokens") + llm_usage_completion_tokens: int | None = Field(None, alias="llm.usage.completion_tokens") + llm_usage_output_tokens: int | None = Field(None, alias="llm.usage.output_tokens") + llm_usage_total_tokens: int | None = Field(None, alias="llm.usage.total_tokens") + + # OpenTelemetry Standard Attributes + service_name: str | None = Field(None, alias="service.name") + otel_status_code: str | None = Field(None, alias="otel.status_code") + error: bool | None = None + + def to_dict(self) -> dict[str, str | int | float | bool]: + """ + Convert to dictionary representation with dotted keys. + + Returns only non-None values with their original dotted notation (e.g., "gen_ai.system"). + """ + result: dict[str, str | int | float | bool] = {} + + # Map field names back to their aliases for proper serialization + for field_name, field_info in self.__class__.model_fields.items(): + value = getattr(self, field_name) + if value is not None: + # Use the alias if available, otherwise use field name + key = field_info.alias or field_name + result[key] = value + + # Add extra fields that were allowed through ConfigDict(extra='allow') + if hasattr(self, "__pydantic_extra__") and self.__pydantic_extra__: + for key, value in self.__pydantic_extra__.items(): + if value is not None: + result[key] = value + + return result + + def get( + self, key: str, default: str | int | float | bool | None = None + ) -> str | int | float | bool | None: + """ + Get attribute value by key, supporting both dotted notation and field names. + + This method provides backward compatibility with dict-style access patterns. + + Args: + key: Attribute key (e.g., "gen_ai.system" or "gen_ai_system") + default: Default value if key not found + + Returns: + Attribute value or default + """ + # Try direct field access first (underscore notation) + field_name = key.replace(".", "_") + if hasattr(self, field_name): + value = getattr(self, field_name) + if value is not None: + # Cast to ensure the return type matches the signature + return value # type: ignore[no-any-return] + + # Try extra fields (dotted notation) + if ( + hasattr(self, "__pydantic_extra__") + and self.__pydantic_extra__ + and key in self.__pydantic_extra__ + ): + return self.__pydantic_extra__[key] # type: ignore[no-any-return] + + return default + + def __getitem__(self, key: str) -> str | int | float | bool: + """ + Get attribute value using subscript notation for backward compatibility. + + Args: + key: Attribute key (e.g., "gen_ai.system") + + Returns: + Attribute value + + Raises: + KeyError: If key not found + """ + value = self.get(key) + if value is None: + raise KeyError(key) + return value + + +class SpanEvent(BaseModel): + """ + Strongly-typed span event structure. + + Represents an event that occurred during span execution, such as prompt content + or completion results in LLM operations. + """ + + model_config = ConfigDict(extra="allow") + + name: str = Field( + ..., + description=f"Event name (e.g., '{GenAI.EVENT_CONTENT_PROMPT}', '{GenAI.EVENT_CONTENT_COMPLETION}')", + ) + timestamp: int = Field(..., description="Unix timestamp in nanoseconds") + attributes: dict[str, str | int | float | bool] = Field( + default_factory=dict, description="Event attributes with typed values" + ) + + +class HealthCheckResponse(BaseModel): + """Health check response from backend systems.""" + + status: Literal["healthy", "unhealthy"] = Field(..., description="Health status of the backend") + backend: Literal["jaeger", "tempo", "traceloop"] = Field(..., description="Backend type") + url: str = Field(..., description="Backend URL") + error: str | None = Field(default=None, description="Error message if unhealthy") + + # Backend-specific fields + service_count: int | None = Field( + default=None, description="Number of services available (Jaeger)" + ) + project_id: str | None = Field(default=None, description="Project ID (Traceloop)") diff --git a/src/opentelemetry_mcp/backends/__init__.py b/src/opentelemetry_mcp/backends/__init__.py new file mode 100644 index 0000000..bfff81d --- /dev/null +++ b/src/opentelemetry_mcp/backends/__init__.py @@ -0,0 +1,5 @@ +"""Backend implementations for different OpenTelemetry trace storage systems.""" + +from opentelemetry_mcp.backends.base import BaseBackend + +__all__ = ["BaseBackend"] diff --git a/src/opentelemetry_mcp/backends/base.py b/src/opentelemetry_mcp/backends/base.py new file mode 100644 index 0000000..4a8c064 --- /dev/null +++ b/src/opentelemetry_mcp/backends/base.py @@ -0,0 +1,160 @@ +"""Abstract base backend for OpenTelemetry trace storage systems.""" + +from abc import ABC, abstractmethod +from typing import Any + +import httpx + +from opentelemetry_mcp.attributes import HealthCheckResponse +from opentelemetry_mcp.models import FilterOperator, SpanData, SpanQuery, TraceData, TraceQuery + + +class BaseBackend(ABC): + """Abstract interface for OpenTelemetry trace backends.""" + + def __init__(self, url: str, api_key: str | None = None, timeout: float = 30.0): + """Initialize backend with connection parameters. + + Args: + url: Backend API URL + api_key: Optional API key for authentication + timeout: Request timeout in seconds + """ + self.url = url + self.api_key = api_key + self.timeout = timeout + self._client: httpx.AsyncClient | None = None + + @property + def client(self) -> httpx.AsyncClient: + """Get or create HTTP client with connection pooling. + + Returns: + Reusable AsyncClient instance with automatic connection pooling + """ + if self._client is None or self._client.is_closed: + self._client = httpx.AsyncClient( + base_url=self.url, + headers=self._create_headers(), + timeout=self.timeout, + follow_redirects=True, + ) + return self._client + + @abstractmethod + def _create_headers(self) -> dict[str, str]: + """Create backend-specific HTTP headers. + + Returns: + Dictionary of HTTP headers (e.g., Authorization, Content-Type) + """ + pass + + @abstractmethod + def get_supported_operators(self) -> set[FilterOperator]: + """Get the set of filter operators that this backend natively supports. + + Operators not in this set will be applied via client-side filtering. + + Returns: + Set of natively supported FilterOperator values + """ + pass + + @abstractmethod + async def search_traces(self, query: TraceQuery) -> list[TraceData]: + """Search for traces matching the given query. + + Args: + query: Trace query parameters + + Returns: + List of matching traces with all spans + + Raises: + Exception: If the backend query fails + """ + pass + + @abstractmethod + async def search_spans(self, query: SpanQuery) -> list[SpanData]: + """Search for individual spans matching the given query. + + Args: + query: Span query parameters + + Returns: + List of matching spans (not grouped by trace) + + Raises: + Exception: If the backend query fails + """ + pass + + @abstractmethod + async def get_trace(self, trace_id: str) -> TraceData: + """Get a specific trace by ID. + + Args: + trace_id: Trace identifier + + Returns: + Complete trace data with all spans + + Raises: + Exception: If trace not found or query fails + """ + pass + + @abstractmethod + async def list_services(self) -> list[str]: + """List all available services. + + Returns: + List of service names + + Raises: + Exception: If query fails + """ + pass + + @abstractmethod + async def get_service_operations(self, service_name: str) -> list[str]: + """Get all operations for a specific service. + + Args: + service_name: Service name + + Returns: + List of operation names + + Raises: + Exception: If query fails + """ + pass + + @abstractmethod + async def health_check(self) -> HealthCheckResponse: + """Check backend health and connectivity. + + Returns: + Health status information + + Raises: + Exception: If backend is unreachable + """ + pass + + async def __aenter__(self) -> "BaseBackend": + """Async context manager entry.""" + return self + + async def __aexit__(self, exc_type: Any, exc_val: Any, exc_tb: Any) -> None: + """Async context manager exit.""" + await self.close() + + async def close(self) -> None: + """Close HTTP client connections.""" + if self._client: + await self._client.aclose() + self._client = None diff --git a/src/opentelemetry_mcp/backends/filter_engine.py b/src/opentelemetry_mcp/backends/filter_engine.py new file mode 100644 index 0000000..6043043 --- /dev/null +++ b/src/opentelemetry_mcp/backends/filter_engine.py @@ -0,0 +1,284 @@ +"""Client-side filter engine for post-query filtering of traces and spans.""" + +import logging +from typing import Any, TypeVar, overload + +from opentelemetry_mcp.models import Filter, FilterOperator, FilterType, SpanData, TraceData + +logger = logging.getLogger(__name__) + +T = TypeVar("T", TraceData, SpanData) + + +class FilterEngine: + """Client-side filter engine for applying filters to traces and spans.""" + + @overload + @staticmethod + def apply_filters(items: list[TraceData], filters: list[Filter]) -> list[TraceData]: ... + + @overload + @staticmethod + def apply_filters(items: list[SpanData], filters: list[Filter]) -> list[SpanData]: ... + + @staticmethod + def apply_filters( + items: list[TraceData] | list[SpanData], filters: list[Filter] + ) -> list[TraceData] | list[SpanData]: + """Apply all filters to traces or spans and return matching items. + + Args: + items: List of traces or spans to filter + filters: List of Filter conditions (combined with AND logic) + + Returns: + Filtered list of items matching all conditions + """ + if not filters: + return items + + filtered_items: list[TraceData] | list[SpanData] + if isinstance(items[0] if items else None, TraceData): + filtered_items = [] + for item in items: + if FilterEngine._matches_all_filters(item, filters): + filtered_items.append(item) # type: ignore[arg-type] + else: + filtered_items = [] + for item in items: + if FilterEngine._matches_all_filters(item, filters): + filtered_items.append(item) # type: ignore[arg-type] + + logger.debug( + f"Client-side filtering: {len(items)} items -> {len(filtered_items)} after applying {len(filters)} filters" + ) + return filtered_items + + @staticmethod + def _matches_all_filters(item: TraceData | SpanData, filters: list[Filter]) -> bool: + """Check if an item (trace or span) matches all filters (AND logic). + + Args: + item: Trace or span to check + filters: List of filters to apply + + Returns: + True if item matches all filters + """ + for filter_obj in filters: + if not FilterEngine._matches_filter(item, filter_obj): + return False + return True + + @staticmethod + def _matches_filter(item: TraceData | SpanData, filter_obj: Filter) -> bool: + """Check if an item (trace or span) matches a single filter. + + Args: + item: Trace or span to check + filter_obj: Filter to apply + + Returns: + True if item matches the filter + """ + field = filter_obj.field + operator = filter_obj.operator + + # Get values from item (may check multiple spans for traces, single span for spans) + values = FilterEngine._get_field_values(item, field) + + # Handle existence operators + if operator == FilterOperator.EXISTS: + return len(values) > 0 + if operator == FilterOperator.NOT_EXISTS: + return len(values) == 0 + + # Handle empty values + if not values: + return False + + # For negative operators (NOT_EQUALS, NOT_IN, NOT_CONTAINS), require ALL values to satisfy the predicate + # For positive operators, check if ANY value matches (OR logic across spans) + negative_ops = { + FilterOperator.NOT_EQUALS, + FilterOperator.NOT_CONTAINS, + FilterOperator.NOT_IN, + } + + if operator in negative_ops: + return all(FilterEngine._compare_value(value, filter_obj) for value in values) + + return any(FilterEngine._compare_value(value, filter_obj) for value in values) + + @staticmethod + def _get_field_values(item: TraceData | SpanData, field: str) -> list[Any]: + """Extract values for a field from trace/span. + + For TraceData: Supports both trace-level fields and span-level fields (checks all spans). + For SpanData: Extracts field directly from the span. + + Args: + item: Trace or span to extract from + field: Field name in dotted notation + + Returns: + List of values found (may be empty, or contain multiple values from trace spans) + """ + values: list[Any] = [] + + # Handle SpanData + if isinstance(item, SpanData): + span_values = FilterEngine._get_span_field_values(item, field) + return [v for v in span_values if v is not None] + + # Handle TraceData + trace = item + + # Check trace-level fields first + if field == "trace_id": + values.append(trace.trace_id) + elif field == "service.name": + values.append(trace.service_name) + elif field == "name" or field == "operation_name": + values.append(trace.root_operation) + elif field == "duration": + values.append(trace.duration_ms) + elif field == "status": + values.append(trace.status) + elif field == "span_count": + values.append(len(trace.spans)) + elif field == "llm_span_count": + values.append(len(trace.llm_spans)) + elif field == "total_tokens": + values.append(trace.total_llm_tokens) + elif field == "has_errors": + values.append(trace.has_errors) + else: + # Check span-level attributes (collect from all spans) + for span in trace.spans: + span_values = FilterEngine._get_span_field_values(span, field) + values.extend(span_values) + + return [v for v in values if v is not None] + + @staticmethod + def _get_span_field_values(span: Any, field: str) -> list[Any]: + """Extract values for a field from a span. + + Args: + span: SpanData object + field: Field name in dotted notation + + Returns: + List of values found in this span + """ + values: list[Any] = [] + + # Check span-level fields + if field == "span_id": + values.append(span.span_id) + elif field == "parent_span_id": + if span.parent_span_id: + values.append(span.parent_span_id) + elif field == "service.name": + values.append(span.service_name) + elif field == "name" or field == "operation_name": + values.append(span.operation_name) + elif field == "duration": + values.append(span.duration_ms) + elif field == "status": + values.append(span.status) + else: + # Check span attributes using dotted notation + attr_value = span.attributes.get(field) + if attr_value is not None: + values.append(attr_value) + + return [v for v in values if v is not None] + + @staticmethod + def _compare_value(actual: Any, filter_obj: Filter) -> bool: + """Compare an actual value against a filter condition. + + Args: + actual: Actual value from trace/span + filter_obj: Filter with operator and expected value(s) + + Returns: + True if actual value matches the filter condition + """ + operator = filter_obj.operator + expected = filter_obj.value + expected_values = filter_obj.values + + # Convert to appropriate type + try: + if filter_obj.value_type == FilterType.NUMBER: + actual_num = float(actual) + expected_num = float(expected) if expected is not None else None + expected_values_num = ( + [float(v) for v in expected_values] if expected_values is not None else None + ) + + # Apply numeric operators + if operator == FilterOperator.EQUALS: + return actual_num == expected_num + elif operator == FilterOperator.NOT_EQUALS: + return actual_num != expected_num + elif operator == FilterOperator.GT: + return actual_num > expected_num if expected_num is not None else False + elif operator == FilterOperator.LT: + return actual_num < expected_num if expected_num is not None else False + elif operator == FilterOperator.GTE: + return actual_num >= expected_num if expected_num is not None else False + elif operator == FilterOperator.LTE: + return actual_num <= expected_num if expected_num is not None else False + elif operator == FilterOperator.IN: + return actual_num in (expected_values_num or []) + elif operator == FilterOperator.NOT_IN: + return actual_num not in (expected_values_num or []) + elif operator == FilterOperator.BETWEEN: + if expected_values_num and len(expected_values_num) == 2: + return expected_values_num[0] <= actual_num <= expected_values_num[1] + return False + + elif filter_obj.value_type == FilterType.BOOLEAN: + actual_bool = bool(actual) + expected_bool = bool(expected) if expected is not None else None + + if operator == FilterOperator.EQUALS: + return actual_bool == expected_bool + elif operator == FilterOperator.NOT_EQUALS: + return actual_bool != expected_bool + + else: # STRING + actual_str = str(actual) + expected_str = str(expected) if expected is not None else "" + expected_values_str = ( + [str(v) for v in expected_values] if expected_values is not None else None + ) + + # String operators + if operator == FilterOperator.EQUALS: + return actual_str == expected_str + elif operator == FilterOperator.NOT_EQUALS: + return actual_str != expected_str + elif operator == FilterOperator.CONTAINS: + return expected_str in actual_str + elif operator == FilterOperator.NOT_CONTAINS: + return expected_str not in actual_str + elif operator == FilterOperator.STARTS_WITH: + return actual_str.startswith(expected_str) + elif operator == FilterOperator.ENDS_WITH: + return actual_str.endswith(expected_str) + elif operator == FilterOperator.IN: + return actual_str in (expected_values_str or []) + elif operator == FilterOperator.NOT_IN: + return actual_str not in (expected_values_str or []) + + except (ValueError, TypeError): + logger.warning(f"Type conversion failed for value: {actual}") + return False + + logger.warning(f"Unknown operator: {operator}") + return False diff --git a/src/opentelemetry_mcp/backends/jaeger.py b/src/opentelemetry_mcp/backends/jaeger.py new file mode 100644 index 0000000..3b8ea6d --- /dev/null +++ b/src/opentelemetry_mcp/backends/jaeger.py @@ -0,0 +1,474 @@ +"""Jaeger backend implementation for querying OpenTelemetry traces.""" + +import logging +from datetime import datetime +from typing import Any + +from opentelemetry_mcp.attributes import HealthCheckResponse, SpanAttributes, SpanEvent +from opentelemetry_mcp.backends.base import BaseBackend +from opentelemetry_mcp.backends.filter_engine import FilterEngine +from opentelemetry_mcp.models import FilterOperator, SpanData, SpanQuery, TraceData, TraceQuery + +logger = logging.getLogger(__name__) + + +class JaegerBackend(BaseBackend): + """Jaeger Query API backend implementation.""" + + def _create_headers(self) -> dict[str, str]: + """Create headers for Jaeger API requests. + + Returns: + Dictionary with optional Bearer token authorization + """ + headers = {} + if self.api_key: + headers["Authorization"] = f"Bearer {self.api_key}" + return headers + + def get_supported_operators(self) -> set[FilterOperator]: + """Get natively supported operators via Jaeger API. + + Jaeger has very limited filtering - only supports equals via tags. + Most filtering will be done client-side. + + Returns: + Set of supported FilterOperator values + """ + return { + FilterOperator.EQUALS, # Via tags parameter + } + + async def search_traces(self, query: TraceQuery) -> list[TraceData]: + """Search for traces using Jaeger Query API with hybrid filtering. + + Args: + query: Trace query parameters + + Returns: + List of matching traces + + Raises: + ValueError: If service_name is not provided + httpx.HTTPError: If API request fails + """ + # Validate service_name is provided + if not query.service_name: + raise ValueError( + "Jaeger backend requires 'service_name' parameter. " + "Use list_services() to see available services, then specify one with service_name parameter." + ) + + # Get all filters (converted + explicit) + all_filters = query.get_all_filters() + + # Jaeger only supports service filtering via API (via query.to_backend_params()) + # All other filters must be applied client-side, even if operator is supported + supported_fields = {"service.name"} # Only service filtering via API + + native_filters = [ + f + for f in all_filters + if f.field in supported_fields and f.operator == FilterOperator.EQUALS + ] + client_filters = [f for f in all_filters if f not in native_filters] + + if client_filters: + logger.info( + f"Will apply {len(client_filters)} filters client-side: " + f"{[(f.field, f.operator.value) for f in client_filters]}" + ) + + # Single service query + return await self._search_service_traces_with_filters(query, native_filters, client_filters) + + async def _search_service_traces_with_filters( + self, + query: TraceQuery, + native_filters: list[Any], + client_filters: list[Any], + ) -> list[TraceData]: + """Search traces for a specific service with hybrid filtering. + + Args: + query: Trace query with service_name set + native_filters: Filters that can be pushed to Jaeger + client_filters: Filters to apply client-side + + Returns: + List of matching traces + """ + # Use to_backend_params for now (handles service, operation, duration, time, tags) + params = query.to_backend_params() + + logger.debug(f"Searching traces with params: {params}") + + response = await self.client.get("/api/traces", params=params) + response.raise_for_status() + + data = response.json() + traces = [] + + for trace_data in data.get("data", []): + trace = self._parse_jaeger_trace(trace_data) + if trace: + traces.append(trace) + + # Apply client-side filters + if client_filters: + traces = FilterEngine.apply_filters(traces, client_filters) + + return traces + + async def search_spans(self, query: SpanQuery) -> list[SpanData]: + """Search for individual spans using Jaeger Query API. + + Jaeger doesn't have a dedicated spans API, so we search for traces + and then flatten to get individual spans matching the query. + + Args: + query: Span query parameters + + Returns: + List of matching spans (flattened from traces) + + Raises: + ValueError: If service_name is not provided + httpx.HTTPError: If API request fails + """ + # Validate service_name is provided + if not query.service_name: + raise ValueError( + "Jaeger backend requires 'service_name' parameter. " + "Use list_services() to see available services, then specify one with service_name parameter." + ) + + # Get all filters (converted + explicit) + all_filters = query.get_all_filters() + + # Jaeger only supports service filtering via API + supported_fields = {"service.name"} + + native_filters = [ + f + for f in all_filters + if f.field in supported_fields and f.operator == FilterOperator.EQUALS + ] + client_filters = [f for f in all_filters if f not in native_filters] + + if client_filters: + logger.info( + f"Will apply {len(client_filters)} span filters client-side: " + f"{[(f.field, f.operator.value) for f in client_filters]}" + ) + + # Convert SpanQuery to TraceQuery for Jaeger API + # We'll fetch more traces than needed and filter spans + trace_query = TraceQuery( + service_name=query.service_name, + operation_name=query.operation_name, + start_time=query.start_time, + end_time=query.end_time, + min_duration_ms=query.min_duration_ms, + max_duration_ms=query.max_duration_ms, + tags=query.tags, + limit=query.limit * 2, # Fetch more traces to ensure we get enough spans + has_error=query.has_error, + gen_ai_system=query.gen_ai_system, + gen_ai_request_model=query.gen_ai_request_model, + gen_ai_response_model=query.gen_ai_response_model, + filters=query.filters, + ) + + # Search traces + traces = await self._search_service_traces_with_filters( + trace_query, + native_filters, + [], # Don't apply client filters at trace level + ) + + # Flatten spans from all traces + all_spans: list[SpanData] = [] + for trace in traces: + all_spans.extend(trace.spans) + + # Apply client-side filters to spans + if client_filters: + all_spans = FilterEngine.apply_filters(all_spans, client_filters) + + # Limit the number of spans returned + return all_spans[: query.limit] + + async def get_trace(self, trace_id: str) -> TraceData: + """Get a specific trace by ID from Jaeger. + + Args: + trace_id: Trace identifier + + Returns: + Complete trace data + + Raises: + httpx.HTTPError: If trace not found or API request fails + """ + logger.debug(f"Fetching trace: {trace_id}") + + response = await self.client.get(f"/api/traces/{trace_id}") + response.raise_for_status() + + data = response.json() + + if not data.get("data") or len(data["data"]) == 0: + raise ValueError(f"Trace not found: {trace_id}") + + trace = self._parse_jaeger_trace(data["data"][0]) + if not trace: + raise ValueError(f"Failed to parse trace: {trace_id}") + + return trace + + async def list_services(self) -> list[str]: + """List all services from Jaeger. + + Returns: + List of service names + + Raises: + httpx.HTTPError: If API request fails + """ + logger.debug("Listing services") + + response = await self.client.get("/api/services") + response.raise_for_status() + + data = response.json() + services_raw = data.get("data", []) + return [str(s) for s in services_raw] + + async def get_service_operations(self, service_name: str) -> list[str]: + """Get operations for a service from Jaeger. + + Args: + service_name: Service name + + Returns: + List of operation names + + Raises: + httpx.HTTPError: If API request fails + """ + logger.debug(f"Getting operations for service: {service_name}") + + response = await self.client.get(f"/api/services/{service_name}/operations") + response.raise_for_status() + + data = response.json() + return [str(op) for op in data.get("data", [])] + + async def health_check(self) -> HealthCheckResponse: + """Check Jaeger backend health. + + Returns: + Health status information + + Raises: + httpx.HTTPError: If backend is unreachable + """ + logger.debug("Checking backend health") + + try: + # Try to list services as a health check + services = await self.list_services() + return HealthCheckResponse( + status="healthy", + backend="jaeger", + url=self.url, + service_count=len(services), + ) + except Exception as e: + return HealthCheckResponse( + status="unhealthy", + backend="jaeger", + url=self.url, + error=str(e), + ) + + def _parse_jaeger_trace(self, trace_data: dict[str, Any]) -> TraceData | None: + """Parse Jaeger trace JSON format to TraceData model. + + Args: + trace_data: Raw Jaeger trace data + + Returns: + Parsed TraceData or None if parsing fails + """ + try: + trace_id = trace_data.get("traceID") + if not trace_id: + logger.warning("Trace missing traceID") + return None + + spans_data = trace_data.get("spans", []) + if not spans_data: + logger.warning(f"Trace {trace_id} has no spans") + return None + + # Get processes dictionary from trace level + processes = trace_data.get("processes", {}) + + # Parse all spans + spans: list[SpanData] = [] + for span_data in spans_data: + span = self._parse_jaeger_span(span_data, processes) + if span: + spans.append(span) + + if not spans: + logger.warning(f"No valid spans in trace {trace_id}") + return None + + # Find root span (no parent) + root_spans = [s for s in spans if not s.parent_span_id] + root_span = root_spans[0] if root_spans else spans[0] + + # Calculate trace duration + start_times = [s.start_time for s in spans] + end_times = [ + datetime.fromtimestamp( + s.start_time.timestamp() + (s.duration_ms / 1000), tz=s.start_time.tzinfo + ) + for s in spans + ] + trace_start = min(start_times) + trace_end = max(end_times) + trace_duration_ms = (trace_end - trace_start).total_seconds() * 1000 + + # Determine overall status (ERROR if any span has error) + trace_status = "OK" + if any(span.has_error for span in spans): + trace_status = "ERROR" + + return TraceData( + trace_id=trace_id, + spans=spans, + start_time=trace_start, + duration_ms=trace_duration_ms, + service_name=root_span.service_name, + root_operation=root_span.operation_name, + status=trace_status, # type: ignore + ) + + except Exception as e: + logger.error(f"Error parsing trace: {e}") + return None + + def _parse_jaeger_span( + self, span_data: dict[str, Any], processes: dict[str, Any] + ) -> SpanData | None: + """Parse Jaeger span JSON to SpanData model. + + Args: + span_data: Raw Jaeger span data + processes: Process/service mapping from trace level + + Returns: + Parsed SpanData or None if parsing fails + """ + try: + trace_id_raw = span_data.get("traceID") + span_id_raw = span_data.get("spanID") + operation_name_raw = span_data.get("operationName") + + if not all([trace_id_raw, span_id_raw, operation_name_raw]): + logger.warning("Span missing required fields") + return None + + trace_id = str(trace_id_raw) + span_id = str(span_id_raw) + operation_name = str(operation_name_raw) + + # Parse timestamps (Jaeger uses microseconds) + start_time_us = span_data.get("startTime", 0) + duration_us = span_data.get("duration", 0) + + start_time = datetime.fromtimestamp(start_time_us / 1_000_000) + duration_ms = duration_us / 1000 + + # Get process/service info + process_id = span_data.get("processID") + service_name = "unknown" + + if process_id and process_id in processes: + service_name = processes[process_id].get("serviceName", "unknown") + elif "process" in span_data: + service_name = span_data["process"].get("serviceName", "unknown") + + # Parse references to find parent + parent_span_id = None + for ref in span_data.get("references", []): + if ref.get("refType") == "CHILD_OF": + parent_span_id = ref.get("spanID") + break + + # Parse tags to attributes dictionary + attributes_dict: dict[str, Any] = {} + for tag in span_data.get("tags", []): + key = tag.get("key") + value = tag.get("value") + if key and value is not None: + attributes_dict[key] = value + + # Create strongly-typed SpanAttributes + span_attributes = SpanAttributes(**attributes_dict) + + # Determine span status + status = "UNSET" + error_tag = span_attributes.error + status_code = span_attributes.otel_status_code + + if error_tag is True or status_code == "ERROR": + status = "ERROR" + elif status_code == "OK": + status = "OK" + + # Parse logs/events with strong typing + events: list[SpanEvent] = [] + for log in span_data.get("logs", []): + event_attrs: dict[str, str | int | float | bool] = {} + for field in log.get("fields", []): + key = field.get("key") + value = field.get("value") + if key and value is not None: + event_attrs[key] = value + + # Try to identify event name + event_name = "event" + if "event" in event_attrs: + event_name = str(event_attrs["event"]) + elif "message" in event_attrs: + event_name = "log" + + events.append( + SpanEvent( + name=event_name, + timestamp=log.get("timestamp", 0), + attributes=event_attrs, + ) + ) + + return SpanData( + trace_id=trace_id, + span_id=span_id, + parent_span_id=parent_span_id, + operation_name=operation_name, + service_name=service_name, + start_time=start_time, + duration_ms=duration_ms, + status=status, # type: ignore + attributes=span_attributes, + events=events, + ) + + except Exception as e: + logger.error(f"Error parsing span: {e}") + return None diff --git a/src/opentelemetry_mcp/backends/tempo.py b/src/opentelemetry_mcp/backends/tempo.py new file mode 100644 index 0000000..e30e07a --- /dev/null +++ b/src/opentelemetry_mcp/backends/tempo.py @@ -0,0 +1,700 @@ +"""Grafana Tempo backend implementation with TraceQL support.""" + +import logging +from datetime import datetime +from typing import Any, Literal + +from opentelemetry_mcp.attributes import HealthCheckResponse, SpanAttributes, SpanEvent +from opentelemetry_mcp.backends.base import BaseBackend +from opentelemetry_mcp.backends.filter_engine import FilterEngine +from opentelemetry_mcp.models import ( + Filter, + FilterOperator, + FilterType, + SpanData, + SpanQuery, + TraceData, + TraceQuery, +) + +logger = logging.getLogger(__name__) + + +class TempoBackend(BaseBackend): + """Grafana Tempo backend with TraceQL query support.""" + + def _create_headers(self) -> dict[str, str]: + """Create headers for Tempo API requests. + + Returns: + Dictionary with optional Bearer token authorization + """ + headers = {} + if self.api_key: + headers["Authorization"] = f"Bearer {self.api_key}" + return headers + + def get_supported_operators(self) -> set[FilterOperator]: + """Get natively supported operators via TraceQL. + + Tempo's TraceQL supports most operators natively. + + Returns: + Set of supported FilterOperator values + """ + return { + FilterOperator.EQUALS, + FilterOperator.NOT_EQUALS, + FilterOperator.GT, + FilterOperator.LT, + FilterOperator.GTE, + FilterOperator.LTE, + FilterOperator.CONTAINS, # Via regex =~ + FilterOperator.IN, # Via OR logic + FilterOperator.EXISTS, # Via != nil + FilterOperator.NOT_EXISTS, # Via = nil + } + + async def search_traces(self, query: TraceQuery) -> list[TraceData]: + """Search traces using TraceQL with hybrid filtering. + + Args: + query: Trace query parameters + + Returns: + List of matching traces + + Raises: + httpx.HTTPError: If API request fails + """ + # Get all filters (converted + explicit) + all_filters = query.get_all_filters() + + # Separate supported and unsupported filters + supported_operators = self.get_supported_operators() + native_filters = [f for f in all_filters if f.operator in supported_operators] + client_filters = [f for f in all_filters if f.operator not in supported_operators] + + if client_filters: + logger.info( + f"Will apply {len(client_filters)} filters client-side: " + f"{[f.operator.value for f in client_filters]}" + ) + + # Build TraceQL query from native filters + traceql = self._build_traceql_from_filters(native_filters, query) + logger.debug(f"Executing TraceQL: {traceql}") + + params: dict[str, str | int] = {"q": traceql, "limit": query.limit} + + # Tempo requires time range - default to last 24 hours if not specified + if query.start_time: + params["start"] = int(query.start_time.timestamp()) + else: + from datetime import timedelta + + params["start"] = int((datetime.now() - timedelta(days=1)).timestamp()) + + if query.end_time: + params["end"] = int(query.end_time.timestamp()) + else: + from datetime import timedelta + + params["end"] = int((datetime.now() + timedelta(hours=1)).timestamp()) + + response = await self.client.get("/api/search", params=params) + response.raise_for_status() + + data = response.json() + traces = [] + + # Tempo search returns an array of trace results directly + # WARNING: Each trace requires a separate HTTP request, so limit to avoid performance issues + trace_results = data if isinstance(data, list) else data.get("traces", []) + max_traces_to_fetch = min(len(trace_results), 50) # Cap at 50 to avoid too many requests + + if len(trace_results) > max_traces_to_fetch: + logger.warning( + f"Limiting trace fetch to {max_traces_to_fetch} out of {len(trace_results)} " + f"results to avoid excessive API calls" + ) + + for trace_result in trace_results[:max_traces_to_fetch]: + trace_id = trace_result.get("traceID") + if trace_id: + try: + trace_response = await self.client.get(f"/api/traces/{trace_id}") + trace_response.raise_for_status() + trace_data = trace_response.json() + trace = self._parse_tempo_trace(trace_data, trace_id_hex=trace_id) + if trace: + traces.append(trace) + except Exception as e: + logger.warning(f"Failed to fetch trace {trace_id}: {e}") + + # Apply client-side filters + if client_filters: + traces = FilterEngine.apply_filters(traces, client_filters) + + return traces + + async def search_spans(self, query: SpanQuery) -> list[SpanData]: + """Search for individual spans using TraceQL with hybrid filtering. + + Tempo doesn't have a dedicated spans API, so we search for traces + and then flatten to get individual spans matching the query. + + Args: + query: Span query parameters + + Returns: + List of matching spans (flattened from traces) + + Raises: + httpx.HTTPError: If API request fails + """ + # Get all filters (converted + explicit) + all_filters = query.get_all_filters() + + # For span queries, we need to be careful about which filters to push to TraceQL + # TraceQL works at the trace level, so span-level filters will match traces that + # have AT LEAST ONE span matching the condition, then return ALL spans from those traces. + # Therefore, span attribute filters should be applied client-side. + + # Filters that can be pushed to TraceQL for span search: + # - service.name (trace-level) + # - duration (can filter traces by duration) + # - status (can filter traces by status) + + # Filters that MUST be applied client-side: + # - Span attributes (gen_ai.*, http.*, etc.) - would match entire trace + # - operation_name - would match trace if ANY span has that operation + + trace_level_fields = {"service.name", "duration", "duration_ms", "status"} + + supported_operators = self.get_supported_operators() + native_filters = [ + f + for f in all_filters + if f.operator in supported_operators and f.field in trace_level_fields + ] + client_filters = [f for f in all_filters if f not in native_filters] + + if client_filters: + logger.info( + f"Will apply {len(client_filters)} span filters client-side: " + f"{[(f.field, f.operator.value) for f in client_filters]}" + ) + + # Build TraceQL query from native filters + # Convert SpanQuery to TraceQuery for TraceQL building + trace_query = TraceQuery( + service_name=query.service_name, + operation_name=query.operation_name, + start_time=query.start_time, + end_time=query.end_time, + min_duration_ms=query.min_duration_ms, + max_duration_ms=query.max_duration_ms, + tags=query.tags, + limit=query.limit * 2, # Fetch more traces to ensure we get enough spans + has_error=query.has_error, + gen_ai_system=query.gen_ai_system, + gen_ai_request_model=query.gen_ai_request_model, + gen_ai_response_model=query.gen_ai_response_model, + filters=query.filters, + ) + + traceql = self._build_traceql_from_filters(native_filters, trace_query) + logger.debug(f"Executing TraceQL for spans: {traceql}") + + params: dict[str, str | int] = {"q": traceql, "limit": trace_query.limit} + + # Tempo requires time range - default to last 24 hours if not specified + if query.start_time: + params["start"] = int(query.start_time.timestamp()) + else: + from datetime import timedelta + + params["start"] = int((datetime.now() - timedelta(days=1)).timestamp()) + + if query.end_time: + params["end"] = int(query.end_time.timestamp()) + else: + from datetime import timedelta + + params["end"] = int((datetime.now() + timedelta(hours=1)).timestamp()) + + response = await self.client.get("/api/search", params=params) + response.raise_for_status() + + data = response.json() + + # Fetch traces and flatten spans + trace_results = data if isinstance(data, list) else data.get("traces", []) + max_traces_to_fetch = min(len(trace_results), 50) # Cap at 50 to avoid too many requests + + if len(trace_results) > max_traces_to_fetch: + logger.warning( + f"Limiting trace fetch to {max_traces_to_fetch} out of {len(trace_results)} " + f"results to avoid excessive API calls" + ) + + all_spans: list[SpanData] = [] + for trace_result in trace_results[:max_traces_to_fetch]: + trace_id = trace_result.get("traceID") + if trace_id: + try: + trace_response = await self.client.get(f"/api/traces/{trace_id}") + trace_response.raise_for_status() + trace_data = trace_response.json() + trace = self._parse_tempo_trace(trace_data, trace_id_hex=trace_id) + if trace: + all_spans.extend(trace.spans) + except Exception as e: + logger.warning(f"Failed to fetch trace {trace_id}: {e}") + + # Apply client-side filters to spans + if client_filters: + all_spans = FilterEngine.apply_filters(all_spans, client_filters) + + # Limit the number of spans returned + return all_spans[: query.limit] + + async def get_trace(self, trace_id: str) -> TraceData: + """Get a specific trace by ID from Tempo.""" + response = await self.client.get(f"/api/traces/{trace_id}") + response.raise_for_status() + data = response.json() + # Pass trace_id_hex to ensure consistent trace ID format (hex instead of base64) + trace = self._parse_tempo_trace(data, trace_id_hex=trace_id) + if not trace: + raise ValueError(f"Failed to parse trace {trace_id}") + return trace + + async def list_services(self) -> list[str]: + """List all services from Tempo. + + Uses search results to extract unique service names since the tag values + endpoint may not be available on all Tempo instances. + + Returns: + List of service names + + Raises: + httpx.HTTPError: If API request fails + """ + logger.debug("Listing services") + + # Use TraceQL to search all traces and extract unique services + traceql = "{}" # Match all traces + params: dict[str, str | int] = {"q": traceql, "limit": 1000} + + # Add default time range (last 24 hours) + from datetime import timedelta + + params["start"] = int((datetime.now() - timedelta(days=1)).timestamp()) + params["end"] = int((datetime.now() + timedelta(hours=1)).timestamp()) + + response = await self.client.get("/api/search", params=params) + response.raise_for_status() + + data = response.json() + trace_results = data if isinstance(data, list) else data.get("traces", []) + + # Extract unique service names + services_set = set() + for trace_result in trace_results: + service_name = trace_result.get("rootServiceName") + if service_name: + services_set.add(service_name) + + services = sorted(list(services_set)) + logger.debug(f"Found {len(services)} unique services from {len(trace_results)} traces") + return services + + async def get_service_operations(self, service_name: str) -> list[str]: + """Get operations for a service from Tempo. + + Args: + service_name: Service name + + Returns: + List of operation names + + Raises: + httpx.HTTPError: If API request fails + """ + logger.debug(f"Getting operations for service: {service_name}") + + # Use TraceQL to find operations + traceql = f'{{ resource.service.name = "{service_name}" }}' + params: dict[str, str | int] = {"q": traceql, "limit": 100} + + response = await self.client.get("/api/search", params=params) + response.raise_for_status() + + data = response.json() + + # Extract unique operation names + operations = set() + trace_results = data if isinstance(data, list) else data.get("traces", []) + for trace_result in trace_results: + if "rootServiceName" in trace_result: + operations.add(trace_result.get("rootTraceName", "")) + + return list(operations) + + async def health_check(self) -> HealthCheckResponse: + """Check Tempo backend health. + + Returns: + Health status information + """ + logger.debug("Checking backend health") + + try: + # Try a simple search as a health check + params: dict[str, str | int] = {"q": "{}", "limit": 1} + response = await self.client.get("/api/search", params=params) + response.raise_for_status() + + return HealthCheckResponse( + status="healthy", + backend="tempo", + url=self.url, + ) + except Exception as e: + return HealthCheckResponse( + status="unhealthy", + backend="tempo", + url=self.url, + error=str(e), + ) + + def _build_traceql_from_filters(self, filters: list[Filter], query: TraceQuery) -> str: + """Build TraceQL query from Filter objects. + + Args: + filters: List of Filter conditions + query: Original query (for time range) + + Returns: + TraceQL query string + """ + conditions = [] + + for filter_obj in filters: + condition = self._filter_to_traceql(filter_obj) + if condition: + conditions.append(condition) + + # If no filters, match all traces + if not conditions: + return "{}" + + # Combine with AND logic + return "{ " + " && ".join(conditions) + " }" + + def _filter_to_traceql(self, filter_obj: Filter) -> str | None: + """Convert a single Filter to TraceQL condition. + + Args: + filter_obj: Filter to convert + + Returns: + TraceQL condition string or None if not supported + """ + field = filter_obj.field + operator = filter_obj.operator + value = filter_obj.value + values = filter_obj.values + + # Map field names to TraceQL syntax + if field == "service.name": + traceql_field = "resource.service.name" + elif field == "name" or field == "operation_name": + traceql_field = "name" + elif field == "duration": + traceql_field = "duration" + elif field == "status": + # Special handling for status + if operator == FilterOperator.EQUALS: + if value == "ERROR": + return "status = error" + elif value == "OK": + return "status = ok" + return None + else: + # Assume it's a span attribute + traceql_field = f"span.{field}" + + # Build condition based on operator + if operator == FilterOperator.EQUALS: + if filter_obj.value_type == FilterType.STRING: + return f'{traceql_field} = "{value}"' + else: + return f"{traceql_field} = {value}" + + elif operator == FilterOperator.NOT_EQUALS: + if filter_obj.value_type == FilterType.STRING: + return f'{traceql_field} != "{value}"' + else: + return f"{traceql_field} != {value}" + + elif operator == FilterOperator.GT: + if field == "duration": + return f"{traceql_field} > {value}ms" + return f"{traceql_field} > {value}" + + elif operator == FilterOperator.LT: + if field == "duration": + return f"{traceql_field} < {value}ms" + return f"{traceql_field} < {value}" + + elif operator == FilterOperator.GTE: + if field == "duration": + return f"{traceql_field} >= {value}ms" + return f"{traceql_field} >= {value}" + + elif operator == FilterOperator.LTE: + if field == "duration": + return f"{traceql_field} <= {value}ms" + return f"{traceql_field} <= {value}" + + elif operator == FilterOperator.CONTAINS: + # Use regex for contains + return f'{traceql_field} =~ ".*{value}.*"' + + elif operator == FilterOperator.IN: + # Build OR condition + if not values: + return None + if filter_obj.value_type == FilterType.STRING: + or_conditions = [f'{traceql_field} = "{v}"' for v in values] + else: + or_conditions = [f"{traceql_field} = {v}" for v in values] + return "(" + " || ".join(or_conditions) + ")" + + elif operator == FilterOperator.EXISTS: + return f"{traceql_field} != nil" + + elif operator == FilterOperator.NOT_EXISTS: + return f"{traceql_field} = nil" + + logger.warning(f"Unsupported operator for TraceQL: {operator}") + return None + + def _build_traceql_query(self, query: TraceQuery) -> str: + """Build TraceQL query from query parameters. + + This method is kept for backward compatibility. New code should use + _build_traceql_from_filters with query.get_all_filters(). + + Args: + query: Trace query parameters + + Returns: + TraceQL query string + """ + # Convert to filters and delegate + filters = query.get_all_filters() + if not filters: + # Empty query - match all traces + return "{}" + return self._build_traceql_from_filters(filters, query) + + def _parse_tempo_trace( + self, trace_data: dict[str, Any], trace_id_hex: str | None = None + ) -> TraceData | None: + """Parse Tempo trace format to TraceData. + + Tempo returns OTLP JSON format, which is different from Jaeger. + + Args: + trace_data: Raw Tempo trace data + trace_id_hex: Optional hex trace ID from search API (preferred over OTLP base64) + + Returns: + Parsed TraceData or None + """ + try: + # Tempo returns OTLP format with batches + batches = trace_data.get("batches", []) + if not batches: + logger.warning("No batches in trace") + return None + + all_spans = [] + trace_id = trace_id_hex # Use hex format if provided + + for batch in batches: + resource = batch.get("resource", {}) + resource_attrs = self._parse_otlp_attributes(resource.get("attributes", [])) + service_name = resource_attrs.get("service.name", "unknown") + + for scope_span in batch.get("scopeSpans", []): + for span_data in scope_span.get("spans", []): + span = self._parse_otlp_span(span_data, str(service_name)) + if span: + all_spans.append(span) + # Only use OTLP trace_id as fallback if hex not provided + if not trace_id: + trace_id = span.trace_id + + if not all_spans or not trace_id: + logger.warning("No valid spans found") + return None + + # Find root span + root_spans = [s for s in all_spans if not s.parent_span_id] + root_span = root_spans[0] if root_spans else all_spans[0] + + # Calculate trace duration + start_times = [s.start_time for s in all_spans] + end_times = [ + datetime.fromtimestamp( + s.start_time.timestamp() + (s.duration_ms / 1000), tz=s.start_time.tzinfo + ) + for s in all_spans + ] + trace_start = min(start_times) + trace_end = max(end_times) + trace_duration_ms = (trace_end - trace_start).total_seconds() * 1000 + + # Determine status + trace_status: Literal["OK", "ERROR", "UNSET"] = "OK" + if any(span.has_error for span in all_spans): + trace_status = "ERROR" + + return TraceData( + trace_id=trace_id, + spans=all_spans, + start_time=trace_start, + duration_ms=trace_duration_ms, + service_name=root_span.service_name, + root_operation=root_span.operation_name, + status=trace_status, + ) + + except Exception as e: + logger.error(f"Error parsing Tempo trace: {e}") + return None + + def _parse_otlp_span(self, span_data: dict[str, Any], service_name: str) -> SpanData | None: + """Parse OTLP span format. + + Args: + span_data: Raw OTLP span + service_name: Service name from resource + + Returns: + Parsed SpanData or None + """ + try: + trace_id_raw = span_data.get("traceId") + span_id_raw = span_data.get("spanId") + name_raw = span_data.get("name") + + if not all([trace_id_raw, span_id_raw, name_raw]): + return None + + trace_id = str(trace_id_raw) + span_id = str(span_id_raw) + name = str(name_raw) + + # Parse timestamps (OTLP uses nanoseconds) + start_time_ns = int(span_data.get("startTimeUnixNano", 0)) + end_time_ns = int(span_data.get("endTimeUnixNano", 0)) + + start_time = datetime.fromtimestamp(start_time_ns / 1_000_000_000) + duration_ns = end_time_ns - start_time_ns + duration_ms = duration_ns / 1_000_000 + + # Parent span ID + parent_span_id = span_data.get("parentSpanId") + + # Parse attributes and create strongly-typed SpanAttributes + attributes_dict = self._parse_otlp_attributes(span_data.get("attributes", [])) + span_attributes = SpanAttributes(**attributes_dict) # type: ignore[arg-type] + + # Parse status + status_data = span_data.get("status", {}) + status_code = status_data.get("code") + status: Literal["OK", "ERROR", "UNSET"] = "UNSET" + + # Handle both string enum and numeric formats + if isinstance(status_code, str): + if "OK" in status_code: + status = "OK" + elif "ERROR" in status_code: + status = "ERROR" + elif isinstance(status_code, int): + if status_code == 1: + status = "OK" + elif status_code == 2: + status = "ERROR" + + # Parse events with strong typing + events: list[SpanEvent] = [] + for event_data in span_data.get("events", []): + event_attrs = self._parse_otlp_attributes(event_data.get("attributes", [])) + events.append( + SpanEvent( + name=event_data.get("name", "event"), + timestamp=event_data.get("timeUnixNano", 0), + attributes=event_attrs, + ) + ) + + return SpanData( + trace_id=trace_id, + span_id=span_id, + parent_span_id=parent_span_id if parent_span_id else None, + operation_name=name, + service_name=service_name, + start_time=start_time, + duration_ms=duration_ms, + status=status, + attributes=span_attributes, + events=events, + ) + + except Exception as e: + logger.error(f"Error parsing OTLP span: {e}") + return None + + def _parse_otlp_attributes( + self, attributes: list[dict[str, Any]] + ) -> dict[str, str | int | float | bool]: + """Parse OTLP attribute format. + + OTLP attributes have structure: {"key": "name", "value": {"stringValue": "..."}} + + Args: + attributes: List of OTLP attributes + + Returns: + Dictionary of parsed attributes with typed values + """ + result: dict[str, str | int | float | bool] = {} + for attr in attributes: + key = attr.get("key") + if not key: + continue + + value_obj = attr.get("value", {}) + + # OTLP values can be different types + if "stringValue" in value_obj: + result[key] = value_obj["stringValue"] + elif "intValue" in value_obj: + result[key] = int(value_obj["intValue"]) + elif "doubleValue" in value_obj: + result[key] = float(value_obj["doubleValue"]) + elif "boolValue" in value_obj: + result[key] = value_obj["boolValue"] + elif "arrayValue" in value_obj: + # Simplified array handling - convert to string + result[key] = str(value_obj["arrayValue"]) + + return result diff --git a/src/opentelemetry_mcp/backends/traceloop.py b/src/opentelemetry_mcp/backends/traceloop.py new file mode 100644 index 0000000..d56c4c5 --- /dev/null +++ b/src/opentelemetry_mcp/backends/traceloop.py @@ -0,0 +1,729 @@ +"""Traceloop backend implementation for querying Opentelemetry traces.""" + +import logging +from datetime import datetime, timedelta +from typing import Any, Literal + +from opentelemetry_mcp.attributes import HealthCheckResponse, SpanAttributes, SpanEvent +from opentelemetry_mcp.backends.base import BaseBackend +from opentelemetry_mcp.backends.filter_engine import FilterEngine +from opentelemetry_mcp.constants import Fields, GenAI, LegacyLLM, Service +from opentelemetry_mcp.models import ( + Filter, + FilterOperator, + FilterType, + SpanData, + SpanQuery, + TraceData, + TraceQuery, +) + +logger = logging.getLogger(__name__) + + +class TraceloopBackend(BaseBackend): + """Traceloop API backend implementation. + + Implements the Traceloop API v2 for querying OpenTelemetry traces + with Opentelemetry semantic conventions. Uses hardcoded project_id "default" + as the Traceloop backend resolves the actual project from the API key. + """ + + def __init__( + self, + url: str, + api_key: str | None = None, + timeout: float = 30.0, + environments: list[str] | None = None, + ): + """Initialize Traceloop backend. + + Args: + url: Traceloop API base URL (e.g., https://api.traceloop.com) + api_key: API key for authentication (required, contains project info) + timeout: Request timeout in seconds + environments: List of environments to query (default: ["production"]) + """ + super().__init__(url, api_key, timeout) + + if not self.api_key: + raise ValueError("Traceloop backend requires an API key") + + # Use "default" as project_id - Traceloop resolves actual project from API key + self.project_id = "default" + + # Store environments for all API requests + self.environments = environments if environments else ["prd"] + + def _create_headers(self) -> dict[str, str]: + """Create headers for Traceloop API requests. + + Returns: + Dictionary with Bearer token and Content-Type headers + """ + return { + "Authorization": f"Bearer {self.api_key}", + "Content-Type": "application/json", + } + + def get_supported_operators(self) -> set[FilterOperator]: + """Get natively supported operators via Traceloop API. + + Traceloop supports basic comparison operators. + + Returns: + Set of supported FilterOperator values + """ + return { + FilterOperator.EQUALS, + FilterOperator.NOT_EQUALS, + FilterOperator.GT, + FilterOperator.LT, + FilterOperator.GTE, + FilterOperator.LTE, + } + + async def search_traces(self, query: TraceQuery) -> list[TraceData]: + """Search for traces using Traceloop API with hybrid filtering. + + Uses the root-spans endpoint to get trace-level data with aggregated metrics. + + Args: + query: Trace query parameters + + Returns: + List of matching traces + + Raises: + httpx.HTTPError: If the API request fails + """ + logger.debug(f"Searching traces with query: {query}") + + # Get all filters + all_filters = query.get_all_filters() + + # Separate supported and unsupported filters by operator + supported_operators = self.get_supported_operators() + native_filters = [f for f in all_filters if f.operator in supported_operators] + client_filters = [f for f in all_filters if f.operator not in supported_operators] + + # Convert native filters to Traceloop format + # If a filter can't be converted (returns None), move it to client-side filtering + traceloop_filters = [] + for native_filter in native_filters: + converted = self._filter_to_traceloop(native_filter) + if converted is not None: + traceloop_filters.append(converted) + else: + # Filter can't be sent to API, apply it client-side + client_filters.append(native_filter) + logger.debug( + f"Filter for field '{native_filter.field}' not supported by API, will apply client-side" + ) + + if client_filters: + logger.info( + f"Will apply {len(client_filters)} filters client-side: " + f"{[(f.field, f.operator.value) for f in client_filters]}" + ) + + # Build request body + body = { + "filters": traceloop_filters, + "logical_operator": "and", + "environments": self.environments, + "sort_by": "timestamp", + "sort_order": "DESC", + "cursor": 0, + "limit": query.limit, + } + + # Add time range (convert to seconds for Traceloop API) + if query.start_time: + body["from_timestamp_sec"] = int(query.start_time.timestamp()) + else: + # Default to last 24 hours if not specified + body["from_timestamp_sec"] = int((datetime.now() - timedelta(days=1)).timestamp()) + + if query.end_time: + body["to_timestamp_sec"] = int(query.end_time.timestamp()) + else: + body["to_timestamp_sec"] = int(datetime.now().timestamp()) + + # Make request + endpoint = f"/v2/projects/{self.project_id}/traces/root-spans" + logger.debug(f"POST {endpoint} with body: {body}") + + response = await self.client.post(endpoint, json=body) + response.raise_for_status() + + data = response.json() + root_spans_data = data.get("root_spans", {}) + root_spans = root_spans_data.get("data", []) + + logger.debug(f"Found {len(root_spans)} traces") + + # Convert to TraceData + traces = [] + for root_span in root_spans: + trace = self._convert_root_span_to_trace(root_span) + if trace: + traces.append(trace) + + # Apply client-side filters + if client_filters: + traces = FilterEngine.apply_filters(traces, client_filters) + + return traces + + async def search_spans(self, query: SpanQuery) -> list[SpanData]: + """Search for individual spans using Traceloop API. + + Uses the direct spans search endpoint to query individual spans. + + Args: + query: Span query parameters + + Returns: + List of matching spans + + Raises: + httpx.HTTPError: If the API request fails + """ + logger.debug(f"Searching spans with query: {query}") + + # Get all filters + all_filters = query.get_all_filters() + + # Separate supported and unsupported filters by operator + supported_operators = self.get_supported_operators() + native_filters = [f for f in all_filters if f.operator in supported_operators] + client_filters = [f for f in all_filters if f.operator not in supported_operators] + + # Convert native filters to Traceloop format + traceloop_filters = [] + for native_filter in native_filters: + converted = self._filter_to_traceloop(native_filter) + if converted is not None: + traceloop_filters.append(converted) + else: + # Filter can't be sent to API, apply it client-side + client_filters.append(native_filter) + logger.debug( + f"Filter for field '{native_filter.field}' not supported by API, will apply client-side" + ) + + if client_filters: + logger.info( + f"Will apply {len(client_filters)} span filters client-side: " + f"{[(f.field, f.operator.value) for f in client_filters]}" + ) + + # Build request body + body = { + "filters": traceloop_filters, + "logical_operator": "and", + "environments": self.environments, + "sort_by": "timestamp", + "sort_order": "DESC", + "cursor": 0, + "limit": query.limit, + } + + # Add time range (convert to seconds for Traceloop API) + if query.start_time: + body["from_timestamp_sec"] = int(query.start_time.timestamp()) + else: + # Default to last 24 hours if not specified + body["from_timestamp_sec"] = int((datetime.now() - timedelta(days=1)).timestamp()) + + if query.end_time: + body["to_timestamp_sec"] = int(query.end_time.timestamp()) + else: + body["to_timestamp_sec"] = int(datetime.now().timestamp()) + + # Make request to spans endpoint + endpoint = f"/v2/projects/{self.project_id}/spans" + logger.debug(f"POST {endpoint} with body: {body}") + + response = await self.client.post(endpoint, json=body) + response.raise_for_status() + + data = response.json() + spans_data = data.get("spans", {}) + spans_list = spans_data.get("data", []) + + logger.debug(f"Found {len(spans_list)} spans") + + # Convert spans to SpanData objects + all_spans: list[SpanData] = [] + for span_data in spans_list: + try: + # Extract and transform span attributes from llm.* to gen_ai.* format + raw_attrs = span_data.get("span_attributes", {}) + transformed_attrs = self._transform_llm_attributes_to_gen_ai(raw_attrs) + + # Create strongly-typed SpanAttributes + span_attributes = SpanAttributes(**transformed_attrs) + + # Transform events if present + events_data = span_data.get("events", []) + events = [ + SpanEvent( + name=event.get("name", ""), + timestamp=event.get("timestamp", 0), + attributes=event.get("attributes", {}), + ) + for event in events_data + ] + + span = SpanData( + trace_id=span_data["trace_id"], + span_id=span_data["span_id"], + parent_span_id=span_data.get("parent_span_id"), + operation_name=span_data["span_name"], + service_name=raw_attrs.get("service.name", ""), + start_time=datetime.fromtimestamp( + span_data["timestamp"] / 1000 + ), # Convert ms to seconds + duration_ms=float(span_data["duration"]), + status=self._status_code_to_status(span_data.get("status_code", "UNSET")), + attributes=span_attributes, + events=events, + ) + + all_spans.append(span) + except Exception as e: + logger.warning(f"Failed to parse span {span_data.get('span_id')}: {e}") + + # Apply client-side filters to spans + if client_filters: + all_spans = FilterEngine.apply_filters(all_spans, client_filters) + + # Return up to the limit requested + return all_spans[: query.limit] + + async def get_trace(self, trace_id: str) -> TraceData: + """Get a specific trace by ID from Traceloop. + + Fetches all spans for the trace with full details. + + Args: + trace_id: Trace identifier + + Returns: + Complete trace data with all spans + + Raises: + ValueError: If trace not found + httpx.HTTPError: If the API request fails + """ + logger.debug(f"Getting trace: {trace_id}") + + endpoint = f"/v2/projects/{self.project_id}/traces/{trace_id}/spans" + response = await self.client.get(endpoint) + response.raise_for_status() + + data = response.json() + spans_data = data.get("spans", []) + + if not spans_data: + raise ValueError(f"Trace {trace_id} not found") + + logger.debug(f"Found {len(spans_data)} spans for trace {trace_id}") + + # Convert spans to TraceData + trace = self._convert_spans_to_trace(trace_id, spans_data) + if trace is None: + raise ValueError(f"Failed to parse trace {trace_id}") + return trace + + async def list_services(self) -> list[str]: + """List all services from Traceloop. + + Queries for unique service names from recent data (last 7 days). + Uses root-spans endpoint as a workaround since spans/attributes/values + endpoint may not be available on all Traceloop instances. + + Returns: + List of service names + + Raises: + httpx.HTTPError: If the API request fails + """ + logger.debug("Listing services") + + # Use root-spans endpoint to get recent traces + body = { + "filters": [], + "logical_operator": "and", + "environments": self.environments, + "sort_by": "timestamp", + "sort_order": "DESC", + "cursor": 0, + "limit": 1000, # Get more traces to find all services + "from_timestamp_sec": int((datetime.now() - timedelta(days=7)).timestamp()), + "to_timestamp_sec": int(datetime.now().timestamp()), + } + + endpoint = f"/v2/projects/{self.project_id}/traces/root-spans" + response = await self.client.post(endpoint, json=body) + response.raise_for_status() + + data = response.json() + root_spans_data = data.get("root_spans", {}) + root_spans = root_spans_data.get("data", []) + + # Extract unique service names + services_set = set() + for root_span in root_spans: + service_name = root_span.get("service_name") + if service_name: + services_set.add(service_name) + + services = sorted(list(services_set)) + logger.debug(f"Found {len(services)} unique services from {len(root_spans)} traces") + return services + + async def get_service_operations(self, service_name: str) -> list[str]: + """Get operations for a service from Traceloop. + + Returns workflow names which represent high-level operations. + + Args: + service_name: Service name (currently not used for filtering) + + Returns: + List of operation/workflow names + + Raises: + httpx.HTTPError: If the API request fails + """ + logger.debug(f"Getting operations for service: {service_name}") + + endpoint = f"/v2/projects/{self.project_id}/spans/workflow-names" + + # Get recent data (last 7 days) + params = { + "start_time": int((datetime.now() - timedelta(days=7)).timestamp() * 1000), + "end_time": int(datetime.now().timestamp() * 1000), + } + + response = await self.client.get(endpoint, params=params) + response.raise_for_status() + + workflows_raw = response.json() + workflows: list[str] = [str(w) for w in workflows_raw] + + logger.debug(f"Found {len(workflows)} workflows") + return workflows + + async def health_check(self) -> HealthCheckResponse: + """Check Traceloop backend health. + + Returns: + Health status information + """ + logger.debug("Checking Traceloop backend health") + + try: + # Traceloop doesn't have a dedicated health endpoint + # Use the projects endpoint as a health check + endpoint = "/v2/warehouse/spans" + response = await self.client.get(endpoint) + response.raise_for_status() + + return HealthCheckResponse( + status="healthy", + backend="traceloop", + url=self.url, + project_id=self.project_id, + ) + except Exception as e: + logger.warning(f"Health check failed: {e}") + return HealthCheckResponse( + status="unhealthy", + backend="traceloop", + url=self.url, + project_id=self.project_id, + error=str(e), + ) + + def _filter_to_traceloop(self, filter_obj: Filter) -> dict[str, Any] | None: + """Convert a Filter object to Traceloop API filter format. + + Args: + filter_obj: Filter to convert + + Returns: + Traceloop filter dict or None if not convertible + """ + field = filter_obj.field + operator = filter_obj.operator + value = filter_obj.value + + # Convert gen_ai.* to llm.* for Traceloop backend + # Traceloop uses legacy llm.* naming convention instead of gen_ai.* + if field.startswith("gen_ai."): + # Map gen_ai.system -> llm.vendor (special case) + if field == GenAI.SYSTEM: + field = LegacyLLM.VENDOR + else: + # General mapping: gen_ai.* -> llm.* + field = field.replace("gen_ai.", "llm.", 1) + logger.debug( + f"Converted filter field to Traceloop format: {filter_obj.field} -> {field}" + ) + + # Map field names to Traceloop API fields + if field == Service.NAME: + traceloop_field = Service.NAME + elif field == "name" or field == Fields.OPERATION_NAME: + traceloop_field = "span_name" + elif field == Fields.DURATION: + traceloop_field = Fields.DURATION + elif field == "duration_ms": + traceloop_field = Fields.DURATION + elif field == Fields.STATUS: + # Status filtering is not supported by Traceloop API - filter client-side + logger.debug("Status filter not supported by Traceloop, will apply client-side") + return None + elif field.startswith("traceloop."): + # Traceloop-specific attributes (like traceloop.span.kind) are supported directly + # without span_attributes. prefix + traceloop_field = field + elif field.startswith("llm."): + # LLM attributes in Traceloop don't need span_attributes. prefix + traceloop_field = field + else: + # Assume it's a span attribute - prefix with span_attributes. + traceloop_field = f"span_attributes.{field}" + + # Map operators to Traceloop format + operator_map = { + FilterOperator.EQUALS: "equals", + FilterOperator.NOT_EQUALS: "not_equals", + FilterOperator.GT: "greater_than", + FilterOperator.LT: "less_than", + FilterOperator.GTE: "greater_than_or_equal", + FilterOperator.LTE: "less_than_or_equal", + } + + traceloop_operator = operator_map.get(operator) + if not traceloop_operator: + logger.warning( + f"Operator {operator} not supported by Traceloop, will filter client-side" + ) + return None + + # Map value_type to Traceloop format + value_type_map = { + FilterType.STRING: "string", + FilterType.NUMBER: "number", + FilterType.BOOLEAN: "boolean", + } + traceloop_value_type = value_type_map.get(filter_obj.value_type, "string") + + if traceloop_value_type == "boolean": + serialized_value = "true" if value else "false" + else: + serialized_value = str(value) + + return { + "field": traceloop_field, + "operator": traceloop_operator, + "value": serialized_value, + "value_type": traceloop_value_type, + } + + @staticmethod + def _transform_llm_attributes_to_gen_ai(attrs: dict[str, Any]) -> dict[str, Any]: + """ + Transform Traceloop's llm.* attributes to gen_ai.* format. + + This adapter method handles the backend-specific attribute naming convention + by mapping llm.* attributes to the canonical gen_ai.* format used throughout + the codebase. + + Args: + attrs: Raw attribute dictionary from Traceloop API + + Returns: + Transformed attribute dictionary with gen_ai.* keys + """ + transformed = dict(attrs) + + # Mapping from llm.* to gen_ai.* format + attribute_mappings = { + "llm.vendor": "gen_ai.system", + "llm.request.model": "gen_ai.request.model", + "llm.response.model": "gen_ai.response.model", + "llm.operation.name": "gen_ai.operation.name", + "llm.request.temperature": "gen_ai.request.temperature", + "llm.request.top_p": "gen_ai.request.top_p", + "llm.request.max_tokens": "gen_ai.request.max_tokens", + "llm.request.is_streaming": "gen_ai.request.is_streaming", + "llm.usage.prompt_tokens": "gen_ai.usage.prompt_tokens", + "llm.usage.input_tokens": "gen_ai.usage.input_tokens", + "llm.usage.completion_tokens": "gen_ai.usage.completion_tokens", + "llm.usage.output_tokens": "gen_ai.usage.output_tokens", + "llm.usage.total_tokens": "gen_ai.usage.total_tokens", + } + + # Transform llm.* keys to gen_ai.* keys if they exist + for llm_key, gen_ai_key in attribute_mappings.items(): + if llm_key in transformed: + # Only transform if gen_ai.* key doesn't already exist (prefer gen_ai.*) + if gen_ai_key not in transformed: + transformed[gen_ai_key] = transformed[llm_key] + # Keep the original llm.* key for backward compatibility + # (it will be stored as a field alias in SpanAttributes) + + return transformed + + def _convert_root_span_to_trace(self, root_span: dict[str, Any]) -> TraceData | None: + """Convert Traceloop root span to TraceData. + + Args: + root_span: Root span data from API + + Returns: + TraceData with aggregated metrics or None if parsing fails + """ + try: + # Extract and transform span attributes from llm.* to gen_ai.* format + raw_attrs = root_span.get("span_attributes", {}) + transformed_attrs = self._transform_llm_attributes_to_gen_ai(raw_attrs) + + # Create strongly-typed SpanAttributes + span_attributes = SpanAttributes(**transformed_attrs) + + # Create span + span = SpanData( + trace_id=root_span["trace_id"], + span_id=root_span["span_id"], + parent_span_id=root_span.get("parent_span_id"), + operation_name=root_span["span_name"], + service_name=root_span.get("service_name", ""), + start_time=datetime.fromtimestamp( + root_span["timestamp"] / 1000 + ), # Convert ms to seconds + duration_ms=float(root_span["duration"]), + status=self._status_code_to_status(root_span.get("status_code", "UNSET")), + attributes=span_attributes, + ) + + # Determine overall status + trace_status = self._status_code_to_status(root_span.get("status_code", "UNSET")) + + # Create trace with aggregated data + return TraceData( + trace_id=root_span["trace_id"], + spans=[span], + start_time=span.start_time, + duration_ms=float(root_span["duration"]), + service_name=span.service_name, + root_operation=span.operation_name, + status=trace_status, + ) + + except Exception as e: + logger.error(f"Error converting root span to trace: {e}") + return None + + def _convert_spans_to_trace( + self, trace_id: str, spans_data: list[dict[str, Any]] + ) -> TraceData | None: + """Convert Traceloop spans array to TraceData. + + Args: + trace_id: Trace identifier + spans_data: List of span data from API + + Returns: + Complete TraceData with all spans + """ + spans = [] + + for span_data in spans_data: + # Extract and transform span attributes from llm.* to gen_ai.* format + raw_attrs = span_data.get("span_attributes", {}) + transformed_attrs = self._transform_llm_attributes_to_gen_ai(raw_attrs) + + # Create strongly-typed SpanAttributes + span_attributes = SpanAttributes(**transformed_attrs) + + # Transform events if present + events_data = span_data.get("events", []) + events = [ + SpanEvent( + name=event.get("name", ""), + timestamp=event.get("timestamp", 0), + attributes=event.get("attributes", {}), + ) + for event in events_data + ] + + span = SpanData( + trace_id=span_data["trace_id"], + span_id=span_data["span_id"], + parent_span_id=span_data.get("parent_span_id"), + operation_name=span_data["span_name"], + service_name=raw_attrs.get("service.name", ""), + start_time=datetime.fromtimestamp( + span_data["timestamp"] / 1000 + ), # Convert ms to seconds + duration_ms=float(span_data["duration"]), + status=self._status_code_to_status(span_data.get("status_code", "UNSET")), + attributes=span_attributes, + events=events, + ) + + spans.append(span) + + # Guard against empty spans list + if not spans: + logger.error(f"Failed to convert any spans for trace {trace_id}") + return None + + # Find root span + root_spans = [s for s in spans if not s.parent_span_id] + root_span = root_spans[0] if root_spans else spans[0] + + # Calculate trace duration + if spans: + start_times = [s.start_time for s in spans] + trace_start = min(start_times) + # Find the maximum end time + end_times = [ + datetime.fromtimestamp(s.start_time.timestamp() + (s.duration_ms / 1000)) + for s in spans + ] + trace_end = max(end_times) + trace_duration_ms = (trace_end - trace_start).total_seconds() * 1000 + else: + trace_start = root_span.start_time + trace_duration_ms = root_span.duration_ms + + # Determine status + trace_status = "OK" + if any(span.has_error for span in spans): + trace_status = "ERROR" + + return TraceData( + trace_id=trace_id, + spans=spans, + start_time=trace_start, + duration_ms=trace_duration_ms, + service_name=root_span.service_name, + root_operation=root_span.operation_name, + status=self._status_code_to_status(trace_status), + ) + + # Trims the prefix STATUS_CODE_ from the status code + def _status_code_to_status(self, status_code: str) -> Literal["OK", "ERROR", "UNSET"]: + """Convert Traceloop status code to standardized status.""" + normalized = status_code.replace("STATUS_CODE_", "").upper() + if normalized in ("OK", "ERROR", "UNSET"): + return normalized # type: ignore[return-value] + return "UNSET" diff --git a/src/opentelemetry_mcp/config.py b/src/opentelemetry_mcp/config.py new file mode 100644 index 0000000..8d1baff --- /dev/null +++ b/src/opentelemetry_mcp/config.py @@ -0,0 +1,125 @@ +"""Configuration management for Opentelemetry MCP Server.""" + +import logging +import os +from typing import Literal + +from dotenv import load_dotenv +from pydantic import BaseModel, Field, HttpUrl, TypeAdapter, field_validator + +logger = logging.getLogger(__name__) + +# Load environment variables +load_dotenv() + + +class BackendConfig(BaseModel): + """Configuration for OpenTelemetry trace backend.""" + + type: Literal["jaeger", "tempo", "traceloop"] + url: HttpUrl + api_key: str | None = Field(default=None, exclude=True) + timeout: float = Field(default=30.0, gt=0, le=300) + environments: list[str] = Field(default_factory=lambda: ["prd"]) + + @field_validator("url") + @classmethod + def validate_url(cls, v: HttpUrl) -> HttpUrl: + """Validate URL scheme.""" + if v.scheme not in ["http", "https"]: + raise ValueError("URL must use http or https scheme") + return v + + @classmethod + def from_env(cls) -> "BackendConfig": + """Load configuration from environment variables.""" + backend_type = os.getenv("BACKEND_TYPE", "jaeger") + backend_url = os.getenv("BACKEND_URL") + + if not backend_url: + raise ValueError("BACKEND_URL environment variable is required") + + if backend_type not in ["jaeger", "tempo", "traceloop"]: + raise ValueError( + f"Invalid BACKEND_TYPE: {backend_type}. Must be one of: jaeger, tempo, traceloop" + ) + + # Parse environments from comma-separated string + environments_str = os.getenv("BACKEND_ENVIRONMENTS", "prd") + environments = [env.strip() for env in environments_str.split(",") if env.strip()] + + # Parse timeout with validation + timeout_str = os.getenv("BACKEND_TIMEOUT", "30") + try: + timeout = float(timeout_str) + except (ValueError, TypeError) as e: + logger.warning(f"Invalid BACKEND_TIMEOUT value '{timeout_str}': {e}. Using default: 30") + timeout = 30.0 + + return cls( + type=backend_type, # type: ignore + url=backend_url, # type: ignore + api_key=os.getenv("BACKEND_API_KEY"), + timeout=timeout, + environments=environments, + ) + + +class ServerConfig(BaseModel): + """MCP Server configuration.""" + + backend: BackendConfig + log_level: Literal["DEBUG", "INFO", "WARNING", "ERROR"] = "INFO" + max_traces_per_query: int = Field(default=500, ge=1, le=1000) + + @classmethod + def from_env(cls) -> "ServerConfig": + """Load server configuration from environment variables.""" + log_level_str = os.getenv("LOG_LEVEL", "INFO").upper() + valid_levels = ("DEBUG", "INFO", "WARNING", "ERROR") + log_level: Literal["DEBUG", "INFO", "WARNING", "ERROR"] = ( + log_level_str if log_level_str in valid_levels else "INFO" # type: ignore[assignment] + ) + + # Parse max_traces_per_query with validation + max_traces_str = os.getenv("MAX_TRACES_PER_QUERY", "500") + try: + max_traces_per_query = int(max_traces_str) + except (ValueError, TypeError) as e: + logger.warning( + f"Invalid MAX_TRACES_PER_QUERY value '{max_traces_str}': {e}. Using default: 500" + ) + max_traces_per_query = 500 + + return cls( + backend=BackendConfig.from_env(), + log_level=log_level, + max_traces_per_query=max_traces_per_query, + ) + + def apply_cli_overrides( + self, + backend_type: str | None = None, + backend_url: str | None = None, + api_key: str | None = None, + environments: str | None = None, + ) -> None: + """Apply CLI argument overrides to configuration.""" + if backend_type: + if backend_type not in ["jaeger", "tempo", "traceloop"]: + raise ValueError( + f"Invalid backend type: {backend_type}. " + "Must be one of: jaeger, tempo, traceloop" + ) + self.backend.type = backend_type # type: ignore + + if backend_url: + self.backend.url = TypeAdapter(HttpUrl).validate_python(backend_url) + + if api_key: + self.backend.api_key = api_key + + if environments: + self.backend.environments = [ + env.strip() for env in environments.split(",") if env.strip() + ] diff --git a/src/opentelemetry_mcp/constants.py b/src/opentelemetry_mcp/constants.py new file mode 100644 index 0000000..a1a4e2d --- /dev/null +++ b/src/opentelemetry_mcp/constants.py @@ -0,0 +1,196 @@ +""" +Semantic conventions for OpenTelemetry attributes. + +This module centralizes all OpenTelemetry semantic convention constants used throughout +the codebase. It imports from: +- opentelemetry.semconv_ai: Traceloop and LLM-specific conventions (OpenLLMetry) +- opentelemetry.semconv.trace: Standard OpenTelemetry conventions + +By using these constants instead of magic strings, we ensure: +- Type safety and IDE autocomplete +- Consistency with OpenLLMetry ecosystem +- Easier refactoring and maintenance +- Alignment with semantic convention standards +""" + +# Import OpenLLMetry semantic conventions (Traceloop/LLM-specific) +# Import standard OpenTelemetry semantic conventions +from opentelemetry.semconv import resource +from opentelemetry.semconv.trace import SpanAttributes as OtelSpanAttributes +from opentelemetry.semconv_ai import ( + EventAttributes, + Events, + GenAISystem, + LLMRequestTypeValues, + Meters, + SpanAttributes, + TraceloopSpanKindValues, +) + + +# Gen AI attributes are not yet in the standard package, so we define them ourselves +# These follow the OpenTelemetry AI semantic conventions specification +class GenAIAttributes: + """Gen AI semantic conventions (incubating).""" + + # System and model + GEN_AI_SYSTEM = "gen_ai.system" + GEN_AI_REQUEST_MODEL = "gen_ai.request.model" + GEN_AI_RESPONSE_MODEL = "gen_ai.response.model" + GEN_AI_OPERATION_NAME = "gen_ai.operation.name" + + # Request parameters + GEN_AI_REQUEST_TEMPERATURE = "gen_ai.request.temperature" + GEN_AI_REQUEST_TOP_P = "gen_ai.request.top_p" + GEN_AI_REQUEST_MAX_TOKENS = "gen_ai.request.max_tokens" + GEN_AI_REQUEST_IS_STREAMING = "gen_ai.request.is_streaming" + + # Response + GEN_AI_RESPONSE_FINISH_REASONS = "gen_ai.response.finish_reasons" + + # Usage/tokens + GEN_AI_USAGE_PROMPT_TOKENS = "gen_ai.usage.prompt_tokens" + GEN_AI_USAGE_INPUT_TOKENS = "gen_ai.usage.input_tokens" + GEN_AI_USAGE_COMPLETION_TOKENS = "gen_ai.usage.completion_tokens" + GEN_AI_USAGE_OUTPUT_TOKENS = "gen_ai.usage.output_tokens" + GEN_AI_USAGE_TOTAL_TOKENS = "gen_ai.usage.total_tokens" + + +# Re-export all for convenience +__all__ = [ + # Enums + "GenAISystem", + "TraceloopSpanKindValues", + "LLMRequestTypeValues", + "Events", + "EventAttributes", + "Meters", + # Attribute classes + "SpanAttributes", + "OtelSpanAttributes", +] + + +# Commonly used attribute constants (for backwards compatibility and convenience) +class GenAI: + """Gen AI semantic conventions namespace.""" + + # System and model + SYSTEM = GenAIAttributes.GEN_AI_SYSTEM + REQUEST_MODEL = GenAIAttributes.GEN_AI_REQUEST_MODEL + RESPONSE_MODEL = GenAIAttributes.GEN_AI_RESPONSE_MODEL + OPERATION_NAME = GenAIAttributes.GEN_AI_OPERATION_NAME + + # Request parameters + REQUEST_TEMPERATURE = GenAIAttributes.GEN_AI_REQUEST_TEMPERATURE + REQUEST_TOP_P = GenAIAttributes.GEN_AI_REQUEST_TOP_P + REQUEST_MAX_TOKENS = GenAIAttributes.GEN_AI_REQUEST_MAX_TOKENS + REQUEST_IS_STREAMING = GenAIAttributes.GEN_AI_REQUEST_IS_STREAMING + + # Response + RESPONSE_FINISH_REASONS = GenAIAttributes.GEN_AI_RESPONSE_FINISH_REASONS + + # Usage/tokens + USAGE_PROMPT_TOKENS = GenAIAttributes.GEN_AI_USAGE_PROMPT_TOKENS + USAGE_INPUT_TOKENS = GenAIAttributes.GEN_AI_USAGE_INPUT_TOKENS + USAGE_COMPLETION_TOKENS = GenAIAttributes.GEN_AI_USAGE_COMPLETION_TOKENS + USAGE_OUTPUT_TOKENS = GenAIAttributes.GEN_AI_USAGE_OUTPUT_TOKENS + USAGE_TOTAL_TOKENS = GenAIAttributes.GEN_AI_USAGE_TOTAL_TOKENS + + # Cache tokens (Anthropic prompt caching) + # Note: OpenLLMetry has these as GEN_AI_USAGE_CACHE_* string values + USAGE_CACHE_CREATION_INPUT_TOKENS = "gen_ai.usage.cache_creation_input_tokens" + USAGE_CACHE_READ_INPUT_TOKENS = "gen_ai.usage.cache_read_input_tokens" + + # Event names + EVENT_CONTENT_PROMPT = "gen_ai.content.prompt" + EVENT_CONTENT_COMPLETION = "gen_ai.content.completion" + + # Event attribute names + EVENT_PROMPT_CONTENT = "gen_ai.prompt.0.content" + EVENT_COMPLETION_CONTENT = "gen_ai.completion.0.content" + + +class LegacyLLM: + """Legacy LLM semantic conventions (for backward compatibility).""" + + # System and model + VENDOR = "llm.vendor" + REQUEST_MODEL = SpanAttributes.LLM_REQUEST_MODEL + RESPONSE_MODEL = "llm.response.model" + + # Request + REQUEST_TYPE = SpanAttributes.LLM_REQUEST_TYPE + IS_STREAMING = SpanAttributes.LLM_IS_STREAMING + TEMPERATURE = "llm.temperature" + TOP_P = SpanAttributes.LLM_TOP_K + MAX_TOKENS = "llm.max_tokens" + FREQUENCY_PENALTY = SpanAttributes.LLM_FREQUENCY_PENALTY + PRESENCE_PENALTY = SpanAttributes.LLM_PRESENCE_PENALTY + + # Response + RESPONSE_FINISH_REASON = SpanAttributes.LLM_RESPONSE_FINISH_REASON + RESPONSE_FINISH_REASONS = "llm.response.finish_reasons" + + # Usage/tokens + USAGE_TOTAL_TOKENS = SpanAttributes.LLM_USAGE_TOTAL_TOKENS + USAGE_PROMPT_TOKENS = "llm.usage.prompt_tokens" + USAGE_INPUT_TOKENS = "llm.usage.input_tokens" + USAGE_COMPLETION_TOKENS = "llm.usage.completion_tokens" + USAGE_OUTPUT_TOKENS = "llm.usage.output_tokens" + + +class Traceloop: + """Traceloop-specific semantic conventions.""" + + # Span classification + SPAN_KIND = SpanAttributes.TRACELOOP_SPAN_KIND + + # Workflow + WORKFLOW_NAME = SpanAttributes.TRACELOOP_WORKFLOW_NAME + + # Entity tracking + ENTITY_NAME = SpanAttributes.TRACELOOP_ENTITY_NAME + ENTITY_PATH = SpanAttributes.TRACELOOP_ENTITY_PATH + ENTITY_VERSION = SpanAttributes.TRACELOOP_ENTITY_VERSION + ENTITY_INPUT = SpanAttributes.TRACELOOP_ENTITY_INPUT + ENTITY_OUTPUT = SpanAttributes.TRACELOOP_ENTITY_OUTPUT + + # Association + ASSOCIATION_PROPERTIES = SpanAttributes.TRACELOOP_ASSOCIATION_PROPERTIES + + # Prompt management + PROMPT_MANAGED = SpanAttributes.TRACELOOP_PROMPT_MANAGED + PROMPT_KEY = SpanAttributes.TRACELOOP_PROMPT_KEY + PROMPT_VERSION = SpanAttributes.TRACELOOP_PROMPT_VERSION + PROMPT_VERSION_NAME = SpanAttributes.TRACELOOP_PROMPT_VERSION_NAME + PROMPT_VERSION_HASH = SpanAttributes.TRACELOOP_PROMPT_VERSION_HASH + PROMPT_TEMPLATE = SpanAttributes.TRACELOOP_PROMPT_TEMPLATE + PROMPT_TEMPLATE_VARIABLES = SpanAttributes.TRACELOOP_PROMPT_TEMPLATE_VARIABLES + + +class Service: + """Service resource attributes.""" + + NAME = resource.ResourceAttributes.SERVICE_NAME + VERSION = resource.ResourceAttributes.SERVICE_VERSION + + +class Status: + """OpenTelemetry status attributes.""" + + CODE = OtelSpanAttributes.OTEL_STATUS_CODE + + +# Field name constants for common operations +class Fields: + """Common field names used in queries and filters.""" + + SERVICE_NAME = Service.NAME + DURATION = "duration" + STATUS = "status" + TRACE_ID = "trace_id" + SPAN_ID = "span_id" + PARENT_SPAN_ID = "parent_span_id" + OPERATION_NAME = "operation_name" + START_TIME = "start_time" diff --git a/src/opentelemetry_mcp/models.py b/src/opentelemetry_mcp/models.py new file mode 100644 index 0000000..b7768cf --- /dev/null +++ b/src/opentelemetry_mcp/models.py @@ -0,0 +1,685 @@ +"""Data models for OpenTelemetry traces and Opentelemetry conventions.""" + +from collections.abc import Sequence +from datetime import datetime +from enum import Enum +from typing import Literal + +from pydantic import BaseModel, Field, model_validator + +from .attributes import SpanAttributes, SpanEvent +from .constants import Fields, GenAI, Service + + +class FilterOperator(str, Enum): + """Supported filter operators for trace queries.""" + + # String operators + EQUALS = "equals" + NOT_EQUALS = "not_equals" + CONTAINS = "contains" + NOT_CONTAINS = "not_contains" + STARTS_WITH = "starts_with" + ENDS_WITH = "ends_with" + IN = "in" + NOT_IN = "not_in" + + # Number operators + GT = "gt" + LT = "lt" + GTE = "gte" + LTE = "lte" + BETWEEN = "between" + + # Existence operators + EXISTS = "exists" + NOT_EXISTS = "not_exists" + + +class FilterType(str, Enum): + """Data types for filter values.""" + + STRING = "string" + NUMBER = "number" + BOOLEAN = "boolean" + + +class Filter(BaseModel): + """A single filter condition for trace queries.""" + + field: str = Field(..., description="Field name in dotted notation (e.g., 'gen_ai.system')") + operator: FilterOperator = Field(..., description="Comparison operator") + value: str | int | float | bool | None = Field( + default=None, description="Single value for most operators" + ) + values: Sequence[str | int | float | bool] | None = Field( + default=None, description="Multiple values for 'in', 'not_in', 'between' operators" + ) + value_type: FilterType = Field(..., description="Type of the value(s)") + + @model_validator(mode="after") + def validate_filter_values(self) -> "Filter": + """Validate that value/values are provided correctly for the operator.""" + requires_multiple = self.operator in [ + FilterOperator.IN, + FilterOperator.NOT_IN, + FilterOperator.BETWEEN, + ] + requires_none = self.operator in [FilterOperator.EXISTS, FilterOperator.NOT_EXISTS] + + if requires_none: + if self.value is not None or self.values is not None: + raise ValueError(f"Operator '{self.operator}' does not accept value or values") + elif requires_multiple: + if not self.values: + raise ValueError(f"Operator '{self.operator}' requires 'values' field") + if self.operator == FilterOperator.BETWEEN and len(self.values) != 2: + raise ValueError("Operator 'between' requires exactly 2 values") + else: + if self.value is None: + raise ValueError(f"Operator '{self.operator}' requires 'value' field") + + return self + + +def _convert_params_to_filters( + service_name: str | None = None, + operation_name: str | None = None, + min_duration_ms: int | None = None, + max_duration_ms: int | None = None, + has_error: bool | None = None, + gen_ai_system: str | None = None, + gen_ai_request_model: str | None = None, + gen_ai_response_model: str | None = None, + tags: dict[str, str] | None = None, + explicit_filters: list[Filter] | None = None, +) -> list[Filter]: + """Convert query parameters to Filter objects and combine with explicit filters. + + This helper function is used by both TraceQuery and SpanQuery to avoid code duplication. + + Args: + service_name: Service name to filter by + operation_name: Operation/span name to filter by + min_duration_ms: Minimum duration in milliseconds + max_duration_ms: Maximum duration in milliseconds + has_error: Filter for error status (True=ERROR, False=NOT ERROR) + gen_ai_system: LLM provider (openai, anthropic, etc.) + gen_ai_request_model: Requested model name + gen_ai_response_model: Actual model used in response + tags: Custom tags to filter by (key-value pairs) + explicit_filters: Explicit Filter objects to append + + Returns: + Combined list of all filters (converted + explicit) + """ + all_filters: list[Filter] = [] + + # Convert parameters to filters + if service_name: + all_filters.append( + Filter( + field=Service.NAME, + operator=FilterOperator.EQUALS, + value=service_name, + value_type=FilterType.STRING, + ) + ) + + if operation_name: + all_filters.append( + Filter( + field=Fields.OPERATION_NAME, + operator=FilterOperator.EQUALS, + value=operation_name, + value_type=FilterType.STRING, + ) + ) + + if min_duration_ms is not None: + all_filters.append( + Filter( + field=Fields.DURATION, + operator=FilterOperator.GTE, + value=min_duration_ms, + value_type=FilterType.NUMBER, + ) + ) + + if max_duration_ms: + all_filters.append( + Filter( + field=Fields.DURATION, + operator=FilterOperator.LTE, + value=max_duration_ms, + value_type=FilterType.NUMBER, + ) + ) + + if has_error is not None: + if has_error: + all_filters.append( + Filter( + field=Fields.STATUS, + operator=FilterOperator.EQUALS, + value="ERROR", + value_type=FilterType.STRING, + ) + ) + else: + all_filters.append( + Filter( + field=Fields.STATUS, + operator=FilterOperator.NOT_EQUALS, + value="ERROR", + value_type=FilterType.STRING, + ) + ) + + if gen_ai_system: + all_filters.append( + Filter( + field=GenAI.SYSTEM, + operator=FilterOperator.EQUALS, + value=gen_ai_system, + value_type=FilterType.STRING, + ) + ) + + if gen_ai_request_model: + all_filters.append( + Filter( + field=GenAI.REQUEST_MODEL, + operator=FilterOperator.EQUALS, + value=gen_ai_request_model, + value_type=FilterType.STRING, + ) + ) + + if gen_ai_response_model: + all_filters.append( + Filter( + field=GenAI.RESPONSE_MODEL, + operator=FilterOperator.EQUALS, + value=gen_ai_response_model, + value_type=FilterType.STRING, + ) + ) + + # Add custom tags as filters + if tags: + for key, value in tags.items(): + all_filters.append( + Filter( + field=key, + operator=FilterOperator.EQUALS, + value=value, + value_type=FilterType.STRING, + ) + ) + + # Add explicit filters + if explicit_filters: + all_filters.extend(explicit_filters) + + return all_filters + + +class SpanData(BaseModel): + """OpenTelemetry span data.""" + + trace_id: str + span_id: str + parent_span_id: str | None = None + operation_name: str + service_name: str + start_time: datetime + duration_ms: float + status: Literal["OK", "ERROR", "UNSET"] = "UNSET" + attributes: SpanAttributes = Field(default_factory=SpanAttributes) # type: ignore[arg-type] + events: list[SpanEvent] = Field(default_factory=list) + + @property + def is_llm_span(self) -> bool: + """Check if this span represents an LLM operation.""" + return self.attributes.gen_ai_system is not None + + @property + def gen_ai_system(self) -> str | None: + """Get the LLM provider (openai, anthropic, etc.).""" + return self.attributes.gen_ai_system + + @property + def has_error(self) -> bool: + """Check if span has an error status.""" + return self.status == "ERROR" + + +class LLMSpanAttributes(BaseModel): + """Parsed Opentelemetry (gen_ai.*) span attributes.""" + + system: str # Provider: openai, anthropic, etc. + request_model: str | None = None + response_model: str | None = None + operation_name: str | None = None + + # Request parameters + temperature: float | None = None + top_p: float | None = None + max_tokens: int | None = None + is_streaming: bool = False + + # Response attributes + finish_reasons: list[str] | None = None + + # Usage metrics + prompt_tokens: int | None = None + completion_tokens: int | None = None + total_tokens: int | None = None + + # Prompts and completions (abbreviated in summary) + prompt_preview: str | None = None + completion_preview: str | None = None + + @classmethod + def from_span(cls, span: SpanData) -> "LLMSpanAttributes | None": + """Extract Opentelemetry attributes from a span with enhanced token calculation.""" + if not span.is_llm_span: + return None + + attrs = span.attributes + + # Handle different token naming conventions (OpenAI vs Anthropic) + prompt_tokens = ( + attrs.gen_ai_usage_prompt_tokens + or attrs.gen_ai_usage_input_tokens + or attrs.llm_usage_prompt_tokens + or attrs.llm_usage_input_tokens + or 0 + ) + completion_tokens = ( + attrs.gen_ai_usage_completion_tokens + or attrs.gen_ai_usage_output_tokens + or attrs.llm_usage_completion_tokens + or attrs.llm_usage_output_tokens + or 0 + ) + + # Enhanced total_tokens calculation: + # 1. Try explicit total_tokens attributes + # 2. Sum all gen_ai.usage.* numeric attributes + # 3. Fallback to prompt + completion + total_tokens = attrs.gen_ai_usage_total_tokens or attrs.llm_usage_total_tokens + + if not total_tokens: + # Search for all gen_ai.usage.* attributes and sum numeric values + usage_sum = 0 + attrs_dict = attrs.to_dict() + usage_prefix = "gen_ai.usage." + for key, value in attrs_dict.items(): + if key.startswith(usage_prefix) and isinstance(value, int): + usage_sum += value + + # If we found usage attributes, use their sum + if usage_sum > 0: + total_tokens = usage_sum + # Otherwise fallback to prompt + completion + elif prompt_tokens or completion_tokens: + total_tokens = prompt_tokens + completion_tokens + + # Parse finish_reasons (can be array or comma-separated string) + finish_reasons = attrs.gen_ai_response_finish_reasons or attrs.llm_response_finish_reasons + if finish_reasons is None: + # Check if it's stored as a string in extra attributes + finish_reasons_raw = attrs.get(GenAI.RESPONSE_FINISH_REASONS) or attrs.get( + "llm.response.finish_reasons" + ) + if isinstance(finish_reasons_raw, str): + finish_reasons = [reason.strip() for reason in finish_reasons_raw.split(",")] + elif isinstance(finish_reasons_raw, list): + finish_reasons = finish_reasons_raw + + # Extract prompt preview from events or attributes + prompt_preview = None + completion_preview = None + + for event in span.events: + if event.name == GenAI.EVENT_CONTENT_PROMPT: + prompt_content = event.attributes.get(GenAI.EVENT_PROMPT_CONTENT) + if prompt_content and isinstance(prompt_content, str): + prompt_preview = ( + prompt_content[:100] + "..." + if len(prompt_content) > 100 + else prompt_content + ) + + if event.name == GenAI.EVENT_CONTENT_COMPLETION: + completion_content = event.attributes.get(GenAI.EVENT_COMPLETION_CONTENT) + if completion_content and isinstance(completion_content, str): + completion_preview = ( + completion_content[:100] + "..." + if len(completion_content) > 100 + else completion_content + ) + + # System is required, so we can safely assert it exists + system = attrs.gen_ai_system + if not system: + return None + + return cls( + system=system, + request_model=attrs.gen_ai_request_model, + response_model=attrs.gen_ai_response_model, + operation_name=attrs.gen_ai_operation_name, + temperature=attrs.gen_ai_request_temperature, + top_p=attrs.gen_ai_request_top_p, + max_tokens=attrs.gen_ai_request_max_tokens, + is_streaming=attrs.gen_ai_request_is_streaming or False, + finish_reasons=finish_reasons, + prompt_tokens=prompt_tokens if prompt_tokens else None, + completion_tokens=completion_tokens if completion_tokens else None, + total_tokens=total_tokens if total_tokens else None, + prompt_preview=prompt_preview, + completion_preview=completion_preview, + ) + + +class UsageMetrics(BaseModel): + """Aggregated LLM usage metrics.""" + + prompt_tokens: int = 0 + completion_tokens: int = 0 + total_tokens: int = 0 + request_count: int = 0 + + # Breakdown by model + by_model: dict[str, "UsageMetrics"] = Field(default_factory=dict) + + # Breakdown by service + by_service: dict[str, "UsageMetrics"] = Field(default_factory=dict) + + def add_span(self, span: SpanData, llm_attrs: LLMSpanAttributes) -> None: + """Add token usage from a span.""" + self.prompt_tokens += llm_attrs.prompt_tokens or 0 + self.completion_tokens += llm_attrs.completion_tokens or 0 + self.total_tokens += llm_attrs.total_tokens or 0 + self.request_count += 1 + + # Add to model breakdown + model = llm_attrs.response_model or llm_attrs.request_model or "unknown" + if model not in self.by_model: + self.by_model[model] = UsageMetrics() + self.by_model[model].prompt_tokens += llm_attrs.prompt_tokens or 0 + self.by_model[model].completion_tokens += llm_attrs.completion_tokens or 0 + self.by_model[model].total_tokens += llm_attrs.total_tokens or 0 + self.by_model[model].request_count += 1 + + # Add to service breakdown + service = span.service_name + if service not in self.by_service: + self.by_service[service] = UsageMetrics() + self.by_service[service].prompt_tokens += llm_attrs.prompt_tokens or 0 + self.by_service[service].completion_tokens += llm_attrs.completion_tokens or 0 + self.by_service[service].total_tokens += llm_attrs.total_tokens or 0 + self.by_service[service].request_count += 1 + + +class TraceData(BaseModel): + """Complete trace with all spans.""" + + trace_id: str + spans: list[SpanData] + start_time: datetime + duration_ms: float + service_name: str + root_operation: str + status: Literal["OK", "ERROR", "UNSET"] = "UNSET" + + @property + def llm_spans(self) -> list[SpanData]: + """Filter spans that are LLM operations.""" + return [span for span in self.spans if span.is_llm_span] + + @property + def has_errors(self) -> bool: + """Check if trace contains any error spans.""" + return any(span.has_error for span in self.spans) + + @property + def total_llm_tokens(self) -> int: + """Calculate total tokens used across all LLM spans.""" + total = 0 + for span in self.llm_spans: + llm_attrs = LLMSpanAttributes.from_span(span) + if llm_attrs and llm_attrs.total_tokens: + total += llm_attrs.total_tokens + return total + + +class TraceQuery(BaseModel): + """Query parameters for searching traces.""" + + # Simple parameters + service_name: str | None = None + operation_name: str | None = None + start_time: datetime | None = None + end_time: datetime | None = None + min_duration_ms: int | None = Field(default=None, ge=0) + max_duration_ms: int | None = Field(default=None, ge=0) + tags: dict[str, str] = Field(default_factory=dict) + limit: int = Field(default=100, ge=1, le=1000) + has_error: bool | None = None + + # Opentelemetry-specific filters + gen_ai_system: str | None = None # Filter by LLM provider + gen_ai_request_model: str | None = None # Filter by requested model + gen_ai_response_model: str | None = None # Filter by actual model used + + # New generic filter system + filters: list[Filter] = Field(default_factory=list, description="Generic filter conditions") + logical_operator: Literal["AND"] = Field( + default="AND", description="Logical operator for combining filters (currently only AND)" + ) + + def has_filters(self) -> bool: + """Check if any filters are specified.""" + return bool( + self.service_name + or self.operation_name + or self.min_duration_ms + or self.max_duration_ms + or self.has_error + or self.gen_ai_system + or self.gen_ai_request_model + or self.gen_ai_response_model + or self.tags + or self.filters + ) + + def get_all_filters(self) -> list[Filter]: + """Convert parameters to Filter objects and combine with explicit filters. + + Returns: + Combined list of all filters (converted + explicit) + """ + return _convert_params_to_filters( + service_name=self.service_name, + operation_name=self.operation_name, + min_duration_ms=self.min_duration_ms, + max_duration_ms=self.max_duration_ms, + has_error=self.has_error, + gen_ai_system=self.gen_ai_system, + gen_ai_request_model=self.gen_ai_request_model, + gen_ai_response_model=self.gen_ai_response_model, + tags=self.tags if self.tags else None, + explicit_filters=self.filters, + ) + + def to_backend_params(self) -> dict[str, str | int]: + """Convert query to backend-specific parameters.""" + params: dict[str, str | int] = {} + + if self.service_name: + params["service"] = self.service_name + + if self.operation_name: + params["operation"] = self.operation_name + + if self.start_time: + # Convert to microseconds since epoch (Jaeger format) + params["start"] = int(self.start_time.timestamp() * 1_000_000) + + if self.end_time: + params["end"] = int(self.end_time.timestamp() * 1_000_000) + + if self.min_duration_ms: + params["minDuration"] = f"{self.min_duration_ms}ms" + + if self.max_duration_ms: + params["maxDuration"] = f"{self.max_duration_ms}ms" + + params["limit"] = self.limit + + # Add tags including Opentelemetry filters + all_tags = dict(self.tags) + if self.gen_ai_system: + all_tags["gen_ai.system"] = self.gen_ai_system + if self.gen_ai_request_model: + all_tags["gen_ai.request.model"] = self.gen_ai_request_model + if self.gen_ai_response_model: + all_tags["gen_ai.response.model"] = self.gen_ai_response_model + + if all_tags: + # Jaeger expects JSON-encoded tags + import json + + params["tags"] = json.dumps(all_tags) + + return params + + +class TraceSummary(BaseModel): + """Simplified trace summary for list results.""" + + trace_id: str + service_name: str + operation_name: str + start_time: datetime + duration_ms: float + status: Literal["OK", "ERROR", "UNSET"] + span_count: int + llm_span_count: int = 0 + total_tokens: int = 0 + has_errors: bool = False + + @classmethod + def from_trace(cls, trace: TraceData) -> "TraceSummary": + """Create summary from full trace data.""" + return cls( + trace_id=trace.trace_id, + service_name=trace.service_name, + operation_name=trace.root_operation, + start_time=trace.start_time, + duration_ms=trace.duration_ms, + status=trace.status, + span_count=len(trace.spans), + llm_span_count=len(trace.llm_spans), + total_tokens=trace.total_llm_tokens, + has_errors=trace.has_errors, + ) + + +class SpanQuery(BaseModel): + """Query parameters for searching individual spans.""" + + # Basic filters + service_name: str | None = None + operation_name: str | None = None + start_time: datetime | None = None + end_time: datetime | None = None + min_duration_ms: int | None = Field(default=None, ge=0) + max_duration_ms: int | None = Field(default=None, ge=0) + tags: dict[str, str] = Field(default_factory=dict) + limit: int = Field(default=100, ge=1, le=1000) + has_error: bool | None = None + + # Opentelemetry-specific filters + gen_ai_system: str | None = None + gen_ai_request_model: str | None = None + gen_ai_response_model: str | None = None + + # Generic filter system + filters: list[Filter] = Field(default_factory=list, description="Generic filter conditions") + logical_operator: Literal["AND"] = Field( + default="AND", description="Logical operator for combining filters (currently only AND)" + ) + + def has_filters(self) -> bool: + """Check if any filters are specified.""" + return bool( + self.service_name + or self.operation_name + or self.min_duration_ms + or self.max_duration_ms + or self.has_error + or self.gen_ai_system + or self.gen_ai_request_model + or self.gen_ai_response_model + or self.tags + or self.filters + ) + + def get_all_filters(self) -> list[Filter]: + """Convert parameters to Filter objects and combine with explicit filters. + + Returns: + Combined list of all filters (converted + explicit) + """ + return _convert_params_to_filters( + service_name=self.service_name, + operation_name=self.operation_name, + min_duration_ms=self.min_duration_ms, + max_duration_ms=self.max_duration_ms, + has_error=self.has_error, + gen_ai_system=self.gen_ai_system, + gen_ai_request_model=self.gen_ai_request_model, + gen_ai_response_model=self.gen_ai_response_model, + tags=self.tags if self.tags else None, + explicit_filters=self.filters, + ) + + +class SpanSummary(BaseModel): + """Simplified span summary for list results.""" + + trace_id: str + span_id: str + parent_span_id: str | None + operation_name: str + service_name: str + start_time: datetime + duration_ms: float + status: Literal["OK", "ERROR", "UNSET"] + is_llm_span: bool = False + gen_ai_system: str | None = None + total_tokens: int | None = None + + @classmethod + def from_span(cls, span: SpanData) -> "SpanSummary": + """Create summary from full span data.""" + llm_attrs = LLMSpanAttributes.from_span(span) if span.is_llm_span else None + + return cls( + trace_id=span.trace_id, + span_id=span.span_id, + parent_span_id=span.parent_span_id, + operation_name=span.operation_name, + service_name=span.service_name, + start_time=span.start_time, + duration_ms=span.duration_ms, + status=span.status, + is_llm_span=span.is_llm_span, + gen_ai_system=llm_attrs.system if llm_attrs else None, + total_tokens=llm_attrs.total_tokens if llm_attrs else None, + ) diff --git a/src/opentelemetry_mcp/server.py b/src/opentelemetry_mcp/server.py new file mode 100644 index 0000000..4435620 --- /dev/null +++ b/src/opentelemetry_mcp/server.py @@ -0,0 +1,702 @@ +"""Opentelemetry MCP Server - Main entry point.""" + +import json +import logging +import sys +from typing import Any + +import click +from fastmcp import FastMCP + +from opentelemetry_mcp.backends.base import BaseBackend +from opentelemetry_mcp.backends.jaeger import JaegerBackend +from opentelemetry_mcp.backends.tempo import TempoBackend +from opentelemetry_mcp.backends.traceloop import TraceloopBackend +from opentelemetry_mcp.config import ServerConfig +from opentelemetry_mcp.tools import ( + errors, + expensive_traces, + list_llm_tools, + list_models, + model_stats, + search, + search_spans, + services, + slow_traces, + trace, + usage, +) + +# Set up logging +logging.basicConfig( + level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s" +) +logger = logging.getLogger(__name__) + + +def _handle_tool_error(tool_name: str, error: Exception) -> str: + """Centralized error handler for tool functions. + + Logs the error with traceback and returns properly escaped JSON. + + Args: + tool_name: Name of the tool that encountered the error + error: The exception that was raised + + Returns: + JSON string with error message + """ + logger.error(f"Error executing {tool_name}: {error}", exc_info=True) + return json.dumps({"error": f"Tool execution failed: {str(error)}"}) + + +# Global backend instance +_backend: BaseBackend | None = None +_config: ServerConfig | None = None + +# Initialize FastMCP server +mcp = FastMCP("opentelemetry-mcp") + + +def _create_backend(config: ServerConfig) -> BaseBackend: + """Create backend instance based on configuration. + + Args: + config: Server configuration + + Returns: + Backend instance + + Raises: + ValueError: If backend type is unsupported + """ + backend_config = config.backend + + if backend_config.type == "jaeger": + logger.info(f"Initializing Jaeger backend: {backend_config.url}") + return JaegerBackend( + url=str(backend_config.url), + api_key=backend_config.api_key, + timeout=backend_config.timeout, + ) + elif backend_config.type == "tempo": + logger.info(f"Initializing Tempo backend: {backend_config.url}") + return TempoBackend( + url=str(backend_config.url), + api_key=backend_config.api_key, + timeout=backend_config.timeout, + ) + elif backend_config.type == "traceloop": + logger.info(f"Initializing Traceloop backend: {backend_config.url}") + return TraceloopBackend( + url=str(backend_config.url), + api_key=backend_config.api_key, + timeout=backend_config.timeout, + environments=backend_config.environments, + ) + else: + raise ValueError(f"Unsupported backend type: {backend_config.type}") + + +async def _get_backend() -> BaseBackend: + """Get or lazily create backend in the current event loop. + + This ensures the backend is always created within FastMCP's event loop, + avoiding "Event loop is closed" errors from premature initialization. + + Returns: + Backend instance + + Raises: + RuntimeError: If server configuration is not set + """ + global _backend, _config + + if not _config: + raise RuntimeError("Server configuration not set") + + # Lazily create backend on first use + if _backend is None: + logger.info("Creating backend in current event loop") + _backend = _create_backend(_config) + + # Perform health check on first initialization + try: + health = await _backend.health_check() + logger.info(f"Backend health check: {health}") + if health.status != "healthy": + logger.warning("Backend is not healthy, but continuing...") + except Exception as e: + logger.error(f"Backend health check failed: {e}") + logger.warning("Continuing anyway, requests may fail...") + + return _backend + + +@mcp.tool() +async def search_traces( + service_name: str | None = None, + operation_name: str | None = None, + start_time: str | None = None, + end_time: str | None = None, + min_duration_ms: int | None = None, + max_duration_ms: int | None = None, + gen_ai_system: str | None = None, + gen_ai_request_model: str | None = None, + gen_ai_response_model: str | None = None, + has_error: bool | None = None, + tags: dict[str, str] | None = None, + filters: list[dict[str, Any]] | None = None, + limit: int = 100, +) -> str: + """Search for OpenTelemetry traces with filters. + + Supports both simple parameters and advanced generic filter system. + + Args: + service_name: Filter by service name (use filters for advanced queries) + operation_name: Filter by operation/span name + start_time: Start time in ISO 8601 format (e.g., 2024-01-01T00:00:00Z) + end_time: End time in ISO 8601 format + min_duration_ms: Minimum trace duration in milliseconds + max_duration_ms: Maximum trace duration in milliseconds + gen_ai_system: Filter by LLM provider (e.g., openai, anthropic) + gen_ai_request_model: Filter by requested model name (e.g., gpt-4) + gen_ai_response_model: Filter by actual model used (e.g., gpt-4-0613) + has_error: Filter traces with errors + tags: Additional tag filters as key-value pairs + filters: Generic filter conditions (advanced) - list of filter objects with: + - field: Field name in dotted notation (e.g., "gen_ai.usage.prompt_tokens") + - operator: Comparison operator (equals, not_equals, gt, lt, gte, lte, contains, + not_contains, starts_with, ends_with, in, not_in, between, exists, not_exists) + - value: Single value for most operators + - values: List of values for "in", "not_in", "between" operators + - value_type: Type of value(s) - "string", "number", or "boolean" + limit: Maximum number of traces to return (1-1000, default: 100) + + Returns: + JSON string with search results + + Filter Examples: + Find expensive traces: + {"field": "gen_ai.usage.total_tokens", "operator": "gt", "value": 5000, "value_type": "number"} + + Filter by multiple models: + {"field": "gen_ai.request.model", "operator": "in", "values": ["gpt-4", "claude-3"], "value_type": "string"} + + Check if attribute exists: + {"field": "gen_ai.request.temperature", "operator": "exists", "value_type": "number"} + + Find streaming requests: + {"field": "gen_ai.request.is_streaming", "operator": "equals", "value": true, "value_type": "boolean"} + """ + try: + backend = await _get_backend() + result = await search.search_traces( + backend, + service_name=service_name, + operation_name=operation_name, + start_time=start_time, + end_time=end_time, + min_duration_ms=min_duration_ms, + max_duration_ms=max_duration_ms, + gen_ai_system=gen_ai_system, + gen_ai_request_model=gen_ai_request_model, + gen_ai_response_model=gen_ai_response_model, + has_error=has_error, + tags=tags, + filters=filters, + limit=limit, + ) + return result + except Exception as e: + return _handle_tool_error("search_traces", e) + + +@mcp.tool() +async def get_trace(trace_id: str) -> str: + """Get complete trace details by trace ID. + + Returns all spans with attributes, including parsed Opentelemetry data for LLM operations. + + Args: + trace_id: Trace identifier + + Returns: + JSON string with trace details + """ + try: + backend = await _get_backend() + result = await trace.get_trace(backend, trace_id=trace_id) + return result + except Exception as e: + return _handle_tool_error("get_trace", e) + + +@mcp.tool() +async def get_llm_usage( + start_time: str | None = None, + end_time: str | None = None, + service_name: str | None = None, + gen_ai_system: str | None = None, + gen_ai_request_model: str | None = None, + gen_ai_response_model: str | None = None, + limit: int = 1000, +) -> str: + """Get aggregated LLM usage metrics (token counts) for a time period. + + Provides breakdowns by model and service. + + Args: + start_time: Start time in ISO 8601 format + end_time: End time in ISO 8601 format + service_name: Filter by service name + gen_ai_system: Filter by LLM provider + gen_ai_request_model: Filter by requested model name + gen_ai_response_model: Filter by actual model used + limit: Maximum traces to analyze (default: 1000) + + Returns: + JSON string with usage metrics + """ + try: + backend = await _get_backend() + result = await usage.get_llm_usage( + backend, + start_time=start_time, + end_time=end_time, + service_name=service_name, + gen_ai_system=gen_ai_system, + gen_ai_request_model=gen_ai_request_model, + gen_ai_response_model=gen_ai_response_model, + limit=limit, + ) + return result + except Exception as e: + return _handle_tool_error("get_llm_usage", e) + + +@mcp.tool() +async def list_services() -> str: + """List all available services in the OpenTelemetry backend. + + Returns: + JSON string with list of services + """ + try: + backend = await _get_backend() + result = await services.list_services(backend) + return result + except Exception as e: + return _handle_tool_error("list_services", e) + + +@mcp.tool() +async def find_errors( + start_time: str | None = None, + end_time: str | None = None, + service_name: str | None = None, + limit: int = 100, +) -> str: + """Find traces with errors. + + Including detailed error messages, stack traces, and LLM-specific error information. + + Args: + start_time: Start time in ISO 8601 format + end_time: End time in ISO 8601 format + service_name: Filter by service name + limit: Maximum error traces to return (default: 100) + + Returns: + JSON string with error traces + """ + try: + backend = await _get_backend() + result = await errors.find_errors( + backend, + start_time=start_time, + end_time=end_time, + service_name=service_name, + limit=limit, + ) + return result + except Exception as e: + return _handle_tool_error("find_errors", e) + + +@mcp.tool() +async def list_llm_models( + start_time: str | None = None, + end_time: str | None = None, + service_name: str | None = None, + gen_ai_system: str | None = None, + limit: int = 1000, +) -> str: + """List all LLM models being used with usage statistics. + + Discovers what models are deployed and tracks their usage patterns. + + Args: + start_time: Start time in ISO 8601 format (e.g., 2024-01-01T00:00:00Z) + end_time: End time in ISO 8601 format + service_name: Filter by service name + gen_ai_system: Filter by LLM provider (e.g., openai, anthropic, cohere) + limit: Maximum traces to analyze for model discovery (default: 1000) + + Returns: + JSON string with list of models and their statistics (count, request_count, first_seen, last_seen) + """ + try: + backend = await _get_backend() + result = await list_models.list_models( + backend, + start_time=start_time, + end_time=end_time, + service_name=service_name, + gen_ai_system=gen_ai_system, + limit=limit, + ) + return result + except Exception as e: + return _handle_tool_error("list_llm_models", e) + + +@mcp.tool() +async def get_llm_model_stats( + model_name: str, + start_time: str | None = None, + end_time: str | None = None, + service_name: str | None = None, +) -> str: + """Get detailed performance statistics for a specific LLM model. + + Analyzes request count, latency percentiles (p50, p95, p99), token usage statistics, + error rates, and finish reason distributions. + + Args: + model_name: Model name to analyze (e.g., "gpt-4", "claude-3-opus", "gpt-3.5-turbo") + start_time: Start time in ISO 8601 format (e.g., 2024-01-01T00:00:00Z) + end_time: End time in ISO 8601 format + service_name: Filter by service name + + Returns: + JSON string with comprehensive model statistics including duration/token percentiles + """ + try: + backend = await _get_backend() + result = await model_stats.get_model_stats( + backend, + model_name=model_name, + start_time=start_time, + end_time=end_time, + service_name=service_name, + ) + return result + except Exception as e: + return _handle_tool_error("get_llm_model_stats", e) + + +@mcp.tool() +async def get_llm_expensive_traces( + limit: int = 10, + start_time: str | None = None, + end_time: str | None = None, + min_tokens: int | None = None, + service_name: str | None = None, + gen_ai_request_model: str | None = None, + gen_ai_response_model: str | None = None, +) -> str: + """Find traces with highest LLM token usage. + + Useful for cost optimization and identifying inefficient prompts. + + Args: + limit: Maximum number of traces to return (default: 10) + start_time: Start time in ISO 8601 format (e.g., 2024-01-01T00:00:00Z) + end_time: End time in ISO 8601 format + min_tokens: Minimum token count threshold (only return traces above this) + service_name: Filter by service name + gen_ai_request_model: Filter by requested model name (e.g., "gpt-4") + gen_ai_response_model: Filter by actual model used (e.g., "gpt-4-0613") + + Returns: + JSON string with top N most expensive traces sorted by total token usage + """ + try: + backend = await _get_backend() + result = await expensive_traces.get_expensive_traces( + backend, + limit=limit, + start_time=start_time, + end_time=end_time, + min_tokens=min_tokens, + service_name=service_name, + gen_ai_request_model=gen_ai_request_model, + gen_ai_response_model=gen_ai_response_model, + ) + return result + except Exception as e: + return _handle_tool_error("get_llm_expensive_traces", e) + + +@mcp.tool() +async def get_llm_slow_traces( + limit: int = 10, + start_time: str | None = None, + end_time: str | None = None, + min_duration_ms: int | None = None, + service_name: str | None = None, + gen_ai_request_model: str | None = None, + gen_ai_response_model: str | None = None, +) -> str: + """Find slowest LLM traces by duration. + + Useful for performance optimization and identifying latency bottlenecks. + + Args: + limit: Maximum number of traces to return (default: 10) + start_time: Start time in ISO 8601 format (e.g., 2024-01-01T00:00:00Z) + end_time: End time in ISO 8601 format + min_duration_ms: Minimum duration threshold in milliseconds (only return traces above this) + service_name: Filter by service name + gen_ai_request_model: Filter by requested model name (e.g., "gpt-4") + gen_ai_response_model: Filter by actual model used (e.g., "gpt-4-0613") + + Returns: + JSON string with top N slowest traces sorted by duration + """ + try: + backend = await _get_backend() + result = await slow_traces.get_slow_traces( + backend, + limit=limit, + start_time=start_time, + end_time=end_time, + min_duration_ms=min_duration_ms, + service_name=service_name, + gen_ai_request_model=gen_ai_request_model, + gen_ai_response_model=gen_ai_response_model, + ) + return result + except Exception as e: + return _handle_tool_error("get_llm_slow_traces", e) + + +@mcp.tool() +async def search_spans_tool( + service_name: str | None = None, + operation_name: str | None = None, + start_time: str | None = None, + end_time: str | None = None, + min_duration_ms: int | None = None, + max_duration_ms: int | None = None, + gen_ai_system: str | None = None, + gen_ai_request_model: str | None = None, + gen_ai_response_model: str | None = None, + has_error: bool | None = None, + tags: dict[str, str] | None = None, + filters: list[dict[str, Any]] | None = None, + limit: int = 100, +) -> str: + """Search for individual OpenTelemetry spans with optional filters. + + Unlike search_traces, this returns individual spans rather than grouped traces, + which is useful for analyzing specific operations or finding spans with certain + characteristics (e.g., LLM tool calls with traceloop.span.kind == tool). + + Args: + service_name: Filter by service name + operation_name: Filter by operation/span name + start_time: Start time in ISO 8601 format (e.g., 2024-01-01T00:00:00Z) + end_time: End time in ISO 8601 format + min_duration_ms: Minimum span duration in milliseconds + max_duration_ms: Maximum span duration in milliseconds + gen_ai_system: Filter by LLM provider (e.g., openai, anthropic) + gen_ai_request_model: Filter by requested model name (e.g., "gpt-4") + gen_ai_response_model: Filter by actual model used (e.g., "gpt-4-0613") + has_error: Filter spans with errors + tags: Additional tag filters as key-value pairs + filters: Generic filter conditions - list of filter objects with: + - field: Field name in dotted notation (e.g., "traceloop.span.kind") + - operator: Comparison operator + - value: Single value for most operators + - values: List of values for "in", "not_in", "between" operators + - value_type: Type of value(s) - "string", "number", or "boolean" + limit: Maximum number of spans to return (1-1000, default: 100) + + Returns: + JSON string with span summaries + + Example filter to find LLM tool calls: + {"field": "traceloop.span.kind", "operator": "equals", "value": "tool", "value_type": "string"} + """ + try: + backend = await _get_backend() + result = await search_spans.search_spans( + backend, + service_name=service_name, + operation_name=operation_name, + start_time=start_time, + end_time=end_time, + min_duration_ms=min_duration_ms, + max_duration_ms=max_duration_ms, + gen_ai_system=gen_ai_system, + gen_ai_request_model=gen_ai_request_model, + gen_ai_response_model=gen_ai_response_model, + has_error=has_error, + tags=tags, + filters=filters, + limit=limit, + ) + return result + except Exception as e: + return _handle_tool_error("search_spans_tool", e) + + +@mcp.tool() +async def list_llm_tools_tool( + start_time: str | None = None, + end_time: str | None = None, + service_name: str | None = None, + gen_ai_system: str | None = None, + limit: int = 1000, +) -> str: + """List all LLM tools being used by identifying traceloop.span.kind == tool. + + Discovers which tools/functions LLM applications are calling, grouped by tool name + with usage statistics. + + Args: + start_time: Start time in ISO 8601 format (e.g., 2024-01-01T00:00:00Z) + end_time: End time in ISO 8601 format + service_name: Filter by service name + gen_ai_system: Filter by LLM provider (openai, anthropic, etc.) + limit: Maximum spans to analyze (default: 1000) + + Returns: + JSON string with list of tools and their statistics (usage count, services, first/last seen) + """ + try: + backend = await _get_backend() + result = await list_llm_tools.list_llm_tools( + backend, + start_time=start_time, + end_time=end_time, + service_name=service_name, + gen_ai_system=gen_ai_system, + limit=limit, + ) + return result + except Exception as e: + return _handle_tool_error("list_llm_tools_tool", e) + + +@click.command() +@click.option( + "--backend", + type=click.Choice(["jaeger", "tempo", "traceloop"]), + help="Backend type (overrides BACKEND_TYPE env var)", +) +@click.option( + "--url", + type=str, + help="Backend URL (overrides BACKEND_URL env var)", +) +@click.option( + "--api-key", + type=str, + help="API key for backend authentication (overrides BACKEND_API_KEY env var)", +) +@click.option( + "--environments", + type=str, + help="Comma-separated list of environments for Traceloop backend (overrides BACKEND_ENVIRONMENTS env var)", +) +@click.option( + "--transport", + type=click.Choice(["stdio", "http"]), + default="stdio", + help="Transport type: stdio (default) for local/Claude Desktop, http for network access", +) +@click.option( + "--host", + type=str, + default="0.0.0.0", + help="Host to bind HTTP server to (only for --transport http, default: 0.0.0.0)", +) +@click.option( + "--port", + type=int, + default=8000, + help="Port for HTTP server (only for --transport http, default: 8000)", +) +def main( + backend: str | None, + url: str | None, + api_key: str | None, + environments: str | None, + transport: str, + host: str, + port: int, +) -> None: + """Opentelemetry MCP Server - Query OpenTelemetry traces from LLM applications. + + Supports multiple backends: Jaeger, Tempo, and Traceloop. + Configuration can be provided via environment variables or CLI arguments. + + Transport options: + - stdio (default): Standard input/output for local use (Claude Desktop) + - http: HTTP server for network access (remote clients) + + Examples: + # Run with stdio transport (default, for Claude Desktop) + opentelemetry-mcp --backend traceloop + + # Run with HTTP transport for network access + opentelemetry-mcp --transport http --port 8000 + + # Run with HTTP on specific host/port + opentelemetry-mcp --transport http --host 127.0.0.1 --port 9000 + """ + global _config + + try: + # Load configuration from environment + _config = ServerConfig.from_env() + + # Set logging level + logging.getLogger().setLevel(_config.log_level) + + # Apply CLI overrides + if backend or url or api_key or environments: + _config.apply_cli_overrides( + backend_type=backend, + backend_url=url, + api_key=api_key, + environments=environments, + ) + + # Backend will be lazily initialized on first tool call + # This ensures it's created in FastMCP's event loop, not a separate one + + # Run server with selected transport + if transport == "http": + logger.info(f"Starting MCP server with HTTP transport on {host}:{port}") + logger.info("Using streamable-http transport for better compatibility") + logger.info(f"Connect clients to: http://{host}:{port}/mcp") + mcp.run(transport="streamable-http", host=host, port=port) + else: + logger.info("Starting MCP server with stdio transport") + mcp.run(transport="stdio") + + except KeyboardInterrupt: + logger.info("Server stopped by user") + sys.exit(0) + except Exception as e: + logger.error(f"Server error: {e}", exc_info=True) + sys.exit(1) + + +if __name__ == "__main__": + main() diff --git a/src/opentelemetry_mcp/tools/__init__.py b/src/opentelemetry_mcp/tools/__init__.py new file mode 100644 index 0000000..e58637f --- /dev/null +++ b/src/opentelemetry_mcp/tools/__init__.py @@ -0,0 +1,3 @@ +"""MCP tools for querying OpenTelemetry traces.""" + +__all__ = [] diff --git a/src/opentelemetry_mcp/tools/errors.py b/src/opentelemetry_mcp/tools/errors.py new file mode 100644 index 0000000..0de0567 --- /dev/null +++ b/src/opentelemetry_mcp/tools/errors.py @@ -0,0 +1,123 @@ +"""Find error traces tool implementation.""" + +import json +from typing import Any + +from pydantic import ValidationError + +from opentelemetry_mcp.backends.base import BaseBackend +from opentelemetry_mcp.models import TraceQuery, TraceSummary +from opentelemetry_mcp.utils import parse_iso_timestamp + + +async def find_errors( + backend: BaseBackend, + start_time: str | None = None, + end_time: str | None = None, + service_name: str | None = None, + limit: int = 100, +) -> str: + """Find traces with errors. + + Args: + backend: Backend instance to query + start_time: Start time (ISO 8601 format) + end_time: End time (ISO 8601 format) + service_name: Filter by service name + limit: Maximum number of error traces to return + + Returns: + JSON string with error traces including error details + """ + # Parse timestamps + start_dt, error = parse_iso_timestamp(start_time, "start_time") + if error: + return json.dumps({"error": error}) + + end_dt, error = parse_iso_timestamp(end_time, "end_time") + if error: + return json.dumps({"error": error}) + + # Build query with error filter + try: + query = TraceQuery( + service_name=service_name, + start_time=start_dt, + end_time=end_dt, + has_error=True, + limit=limit, + ) + except ValidationError as e: + return json.dumps({"error": f"Invalid query parameters: {e}"}) + + try: + # Search for error traces + traces = await backend.search_traces(query) + + # Build detailed error information + error_traces = [] + + for trace in traces: + # Find error spans + error_spans = [span for span in trace.spans if span.has_error] + + trace_info: dict[str, Any] = TraceSummary.from_trace(trace).model_dump(mode="json") + + # Add error details + trace_info["error_spans"] = [] + error_spans_list: list[Any] = trace_info["error_spans"] + for span in error_spans: + error_info: dict[str, Any] = { + "span_id": span.span_id, + "operation_name": span.operation_name, + "service_name": span.service_name, + "status": span.status, + } + + # Extract error message using typed attribute access + error_message_val = ( + span.attributes.get("error.message") + or span.attributes.get("exception.message") + or "Unknown error" + ) + error_info["error_message"] = str(error_message_val) + + # Extract error type + error_type_val = span.attributes.get("error.type") or span.attributes.get( + "exception.type" + ) + if error_type_val: + error_info["error_type"] = str(error_type_val) + + # Extract stack trace (truncated) + stack_trace_val = span.attributes.get("exception.stacktrace") + if stack_trace_val: + # Truncate long stack traces + stack_trace_str = str(stack_trace_val) + if len(stack_trace_str) > 500: + error_info["stack_trace"] = stack_trace_str[:500] + "..." + else: + error_info["stack_trace"] = stack_trace_str + + # Check if it's an LLM-related error + if span.is_llm_span: + error_info["is_llm_error"] = True + llm_provider = span.gen_ai_system + # Get model from request or response model + llm_model = ( + span.attributes.gen_ai_request_model + or span.attributes.gen_ai_response_model + ) + error_info["llm_provider"] = str(llm_provider) if llm_provider else None + error_info["llm_model"] = str(llm_model) if llm_model else None + + error_spans_list.append(error_info) + + error_traces.append(trace_info) + + result = {"count": len(error_traces), "error_traces": error_traces} + + return json.dumps(result, indent=2, default=str) + + except Exception as e: + return json.dumps({"error": f"Failed to find error traces: {str(e)}"}) diff --git a/src/opentelemetry_mcp/tools/expensive_traces.py b/src/opentelemetry_mcp/tools/expensive_traces.py new file mode 100644 index 0000000..3576477 --- /dev/null +++ b/src/opentelemetry_mcp/tools/expensive_traces.py @@ -0,0 +1,126 @@ +"""Expensive traces tool implementation.""" + +import json + +from opentelemetry_mcp.backends.base import BaseBackend +from opentelemetry_mcp.models import LLMSpanAttributes, TraceQuery +from opentelemetry_mcp.utils import parse_iso_timestamp + + +async def get_expensive_traces( + backend: BaseBackend, + limit: int = 10, + start_time: str | None = None, + end_time: str | None = None, + min_tokens: int | None = None, + service_name: str | None = None, + gen_ai_request_model: str | None = None, + gen_ai_response_model: str | None = None, +) -> str: + """Find traces with highest token usage. + + Args: + backend: Backend instance to query + limit: Maximum number of traces to return (default: 10) + start_time: Start time (ISO 8601 format) + end_time: End time (ISO 8601 format) + min_tokens: Minimum token count threshold + service_name: Filter by service name + gen_ai_request_model: Filter by requested model name + gen_ai_response_model: Filter by actual model used + + Returns: + JSON string with top N most expensive traces + """ + # Parse timestamps + start_dt, error = parse_iso_timestamp(start_time, "start_time") + if error: + return json.dumps({"error": error}) + + end_dt, error = parse_iso_timestamp(end_time, "end_time") + if error: + return json.dumps({"error": error}) + + try: + # Build query to fetch traces (use larger limit to find top N) + query = TraceQuery( + start_time=start_dt, + end_time=end_dt, + service_name=service_name, + gen_ai_request_model=gen_ai_request_model, + gen_ai_response_model=gen_ai_response_model, + limit=min(limit * 10, 1000), # Fetch more to ensure we get enough expensive ones + ) + + # Search traces + trace_summaries = await backend.search_traces(query) + + # Collect trace data with token counts + expensive_traces = [] + + for summary in trace_summaries: + # Get full trace to access LLM spans + trace = await backend.get_trace(summary.trace_id) + + total_tokens = 0 + total_prompt_tokens = 0 + total_completion_tokens = 0 + models_used = set() + + for span in trace.llm_spans: + llm_attrs = LLMSpanAttributes.from_span(span) + if not llm_attrs: + continue + + # Calculate total tokens for this span + if llm_attrs.total_tokens: + total_tokens += llm_attrs.total_tokens + if llm_attrs.prompt_tokens: + total_prompt_tokens += llm_attrs.prompt_tokens + if llm_attrs.completion_tokens: + total_completion_tokens += llm_attrs.completion_tokens + + # Track models + model = llm_attrs.response_model or llm_attrs.request_model + if model: + models_used.add(model) + + # Skip if below minimum threshold + if min_tokens and total_tokens < min_tokens: + continue + + # Skip traces with no LLM usage + if total_tokens == 0: + continue + + expensive_traces.append( + { + "trace_id": trace.trace_id, + "service_name": trace.service_name, + "operation_name": trace.root_operation, + "start_time": trace.start_time.isoformat(), + "duration_ms": round(trace.duration_ms, 2), + "models": sorted(list(models_used)), + "tokens": { + "prompt": total_prompt_tokens, + "completion": total_completion_tokens, + "total": total_tokens, + }, + "status": trace.status, + "has_errors": trace.has_errors, + } + ) + + # Sort by total tokens descending and take top N + expensive_traces.sort(key=lambda x: x["tokens"]["total"], reverse=True) # type: ignore[index] + top_traces = expensive_traces[:limit] + + result = { + "count": len(top_traces), + "traces": top_traces, + } + + return json.dumps(result, indent=2) + + except Exception as e: + return json.dumps({"error": f"Failed to get expensive traces: {str(e)}"}) diff --git a/src/opentelemetry_mcp/tools/list_llm_tools.py b/src/opentelemetry_mcp/tools/list_llm_tools.py new file mode 100644 index 0000000..30785cd --- /dev/null +++ b/src/opentelemetry_mcp/tools/list_llm_tools.py @@ -0,0 +1,137 @@ +"""List LLM tools tool implementation.""" + +import json +from datetime import datetime +from typing import Any + +from opentelemetry.semconv_ai import TraceloopSpanKindValues +from pydantic import BaseModel + +from opentelemetry_mcp.backends.base import BaseBackend +from opentelemetry_mcp.constants import Traceloop +from opentelemetry_mcp.models import Filter, FilterOperator, FilterType, SpanQuery +from opentelemetry_mcp.utils import parse_iso_timestamp + + +class LLMToolInfo(BaseModel): + """Information about an LLM tool usage.""" + + tool_name: str + usage_count: int + services: list[str] + first_seen: datetime + last_seen: datetime + + +async def list_llm_tools( + backend: BaseBackend, + start_time: str | None = None, + end_time: str | None = None, + service_name: str | None = None, + gen_ai_system: str | None = None, + limit: int = 1000, +) -> str: + """List all LLM tools being used by identifying traceloop.span.kind == tool. + + Discovers which tools/functions LLM applications are calling, grouped by tool name + with usage statistics. + + Args: + backend: Backend instance to query + start_time: Start time in ISO 8601 format + end_time: End time in ISO 8601 format + service_name: Filter by service name + gen_ai_system: Filter by LLM provider (openai, anthropic, etc.) + limit: Maximum spans to analyze (default: 1000) + + Returns: + JSON string with list of tools and their statistics + """ + # Parse timestamps + start_dt, error = parse_iso_timestamp(start_time, "start_time") + if error: + return json.dumps({"error": error}) + + end_dt, error = parse_iso_timestamp(end_time, "end_time") + if error: + return json.dumps({"error": error}) + + # Build filter for traceloop.span.kind == tool + filters = [ + Filter( + field=Traceloop.SPAN_KIND, + operator=FilterOperator.EQUALS, + value=TraceloopSpanKindValues.TOOL.value, + value_type=FilterType.STRING, + ) + ] + + # Build query + query = SpanQuery( + service_name=service_name, + start_time=start_dt, + end_time=end_dt, + gen_ai_system=gen_ai_system, + filters=filters, + limit=limit, + ) + + try: + # Execute search + spans = await backend.search_spans(query) + + if not spans: + return json.dumps( + { + "count": 0, + "tools": [], + "message": "No LLM tool spans found matching the criteria", + } + ) + + # Group spans by tool name (using operation_name as tool name) + tools_map: dict[str, dict[str, Any]] = {} + + for span in spans: + tool_name = span.operation_name + + if tool_name not in tools_map: + tools_map[tool_name] = { + "tool_name": tool_name, + "usage_count": 0, + "services": set(), + "first_seen": span.start_time, + "last_seen": span.start_time, + } + + tool_data = tools_map[tool_name] + tool_data["usage_count"] += 1 + tool_data["services"].add(span.service_name) + + # Update time bounds + if span.start_time < tool_data["first_seen"]: + tool_data["first_seen"] = span.start_time + if span.start_time > tool_data["last_seen"]: + tool_data["last_seen"] = span.start_time + + # Convert to list and serialize + tools_list = [] + for tool_data in tools_map.values(): + # Convert set to sorted list + tool_data["services"] = sorted(list(tool_data["services"])) + tool_info = LLMToolInfo(**tool_data) + tools_list.append(tool_info.model_dump(mode="json")) + + # Sort by usage count descending + tools_list.sort(key=lambda x: x["usage_count"], reverse=True) + + result = { + "count": len(tools_list), + "total_calls": sum(t["usage_count"] for t in tools_list), + "tools": tools_list, + } + + return json.dumps(result, indent=2, default=str) + + except Exception as e: + return json.dumps({"error": f"Failed to list LLM tools: {str(e)}"}) diff --git a/src/opentelemetry_mcp/tools/list_models.py b/src/opentelemetry_mcp/tools/list_models.py new file mode 100644 index 0000000..53206b9 --- /dev/null +++ b/src/opentelemetry_mcp/tools/list_models.py @@ -0,0 +1,106 @@ +"""List LLM models tool implementation.""" + +import json +from typing import Any + +from opentelemetry_mcp.backends.base import BaseBackend +from opentelemetry_mcp.models import LLMSpanAttributes, TraceQuery +from opentelemetry_mcp.utils import parse_iso_timestamp + + +async def list_models( + backend: BaseBackend, + start_time: str | None = None, + end_time: str | None = None, + service_name: str | None = None, + gen_ai_system: str | None = None, + limit: int = 1000, +) -> str: + """List all LLM models being used with usage statistics. + + Args: + backend: Backend instance to query + start_time: Start time (ISO 8601 format) + end_time: End time (ISO 8601 format) + service_name: Filter by service name + gen_ai_system: Filter by LLM provider (e.g., "openai", "anthropic") + limit: Maximum number of traces to analyze (default: 1000) + + Returns: + JSON string with list of models and their usage statistics + """ + # Parse timestamps + start_dt, error = parse_iso_timestamp(start_time, "start_time") + if error: + return json.dumps({"error": error}) + + end_dt, error = parse_iso_timestamp(end_time, "end_time") + if error: + return json.dumps({"error": error}) + + try: + # Build query to fetch traces + query = TraceQuery( + start_time=start_dt, + end_time=end_dt, + service_name=service_name, + gen_ai_system=gen_ai_system, + limit=limit, + ) + + # Search traces + trace_summaries = await backend.search_traces(query) + + # Track models with their statistics + models_data: dict[str, dict[str, Any]] = {} + + for summary in trace_summaries: + # Get full trace to access LLM spans + trace = await backend.get_trace(summary.trace_id) + + for span in trace.llm_spans: + llm_attrs = LLMSpanAttributes.from_span(span) + if not llm_attrs: + continue + + # Get model name (prefer response_model, fallback to request_model) + model = llm_attrs.response_model or llm_attrs.request_model + if not model: + model = "unknown" + + # Initialize model entry if not exists + if model not in models_data: + models_data[model] = { + "model": model, + "provider": llm_attrs.system, + "request_count": 0, + "first_seen": span.start_time.isoformat(), + "last_seen": span.start_time.isoformat(), + } + + # Update statistics + models_data[model]["request_count"] += 1 + + # Update timestamps + span_time = span.start_time.isoformat() + if span_time < models_data[model]["first_seen"]: + models_data[model]["first_seen"] = span_time + if span_time > models_data[model]["last_seen"]: + models_data[model]["last_seen"] = span_time + + # Convert to sorted list (by request count descending) + models_list = sorted( + models_data.values(), + key=lambda x: x["request_count"], + reverse=True, + ) + + result = { + "count": len(models_list), + "models": models_list, + } + + return json.dumps(result, indent=2) + + except Exception as e: + return json.dumps({"error": f"Failed to list models: {str(e)}"}) diff --git a/src/opentelemetry_mcp/tools/model_stats.py b/src/opentelemetry_mcp/tools/model_stats.py new file mode 100644 index 0000000..4e37ddf --- /dev/null +++ b/src/opentelemetry_mcp/tools/model_stats.py @@ -0,0 +1,168 @@ +"""Model statistics tool implementation.""" + +import json +from collections.abc import Sequence + +from opentelemetry_mcp.backends.base import BaseBackend +from opentelemetry_mcp.models import LLMSpanAttributes, TraceQuery +from opentelemetry_mcp.utils import parse_iso_timestamp + + +def calculate_percentiles(values: Sequence[float | int]) -> dict[str, float]: + """Calculate percentile statistics for a list of values. + + Args: + values: List of numeric values + + Returns: + Dictionary with mean, median, p50, p95, p99 + """ + if not values: + return {"mean": 0.0, "median": 0.0, "p50": 0.0, "p95": 0.0, "p99": 0.0} + + sorted_values = sorted(values) + length = len(sorted_values) + + def percentile(p: float) -> float: + """Calculate percentile value.""" + index = (length - 1) * p + lower = int(index) + upper = min(lower + 1, length - 1) + weight = index - lower + return sorted_values[lower] * (1 - weight) + sorted_values[upper] * weight + + return { + "mean": sum(values) / length, + "median": percentile(0.5), + "p50": percentile(0.5), + "p95": percentile(0.95), + "p99": percentile(0.99), + } + + +async def get_model_stats( + backend: BaseBackend, + model_name: str, + start_time: str | None = None, + end_time: str | None = None, + service_name: str | None = None, + limit: int = 1000, +) -> str: + """Get detailed performance statistics for a specific model. + + Note: This function uses an N+1 query pattern where it first searches for traces, + then fetches each trace individually to access LLM span details. This can cause + performance issues with large result sets. Consider using backend-side filtering + for model names when available to reduce the number of traces fetched. + + Args: + backend: Backend instance to query + model_name: Model name to analyze (e.g., "gpt-4", "claude-3-opus") + start_time: Start time (ISO 8601 format) + end_time: End time (ISO 8601 format) + service_name: Filter by service name + limit: Maximum number of traces to analyze (default: 1000) + + Returns: + JSON string with comprehensive model statistics + """ + # Parse timestamps + start_dt, error = parse_iso_timestamp(start_time, "start_time") + if error: + return json.dumps({"error": error}) + + end_dt, error = parse_iso_timestamp(end_time, "end_time") + if error: + return json.dumps({"error": error}) + + try: + # Build query to fetch traces - search for model in both request and response + # We need to fetch traces where the model appears in either field + # Since we can only use AND logic for multiple filters, we'll fetch without model filter + # and filter in-memory to support OR logic (request_model OR response_model) + query = TraceQuery( + start_time=start_dt, + end_time=end_dt, + service_name=service_name, + limit=limit, + ) + + # Search traces + trace_summaries = await backend.search_traces(query) + + # Collect metrics for analysis + durations: list[float] = [] + prompt_tokens_list: list[int] = [] + completion_tokens_list: list[int] = [] + total_tokens_list: list[int] = [] + finish_reasons_count: dict[str, int] = {} + error_count = 0 + success_count = 0 + request_count = 0 + + for summary in trace_summaries: + # Get full trace to access LLM spans + trace = await backend.get_trace(summary.trace_id) + + for span in trace.llm_spans: + llm_attrs = LLMSpanAttributes.from_span(span) + if not llm_attrs: + continue + + # Check if this span is for the requested model + span_model = llm_attrs.response_model or llm_attrs.request_model + if span_model != model_name: + continue + + request_count += 1 + + # Collect duration + durations.append(span.duration_ms) + + # Collect token metrics + if llm_attrs.prompt_tokens: + prompt_tokens_list.append(llm_attrs.prompt_tokens) + if llm_attrs.completion_tokens: + completion_tokens_list.append(llm_attrs.completion_tokens) + if llm_attrs.total_tokens: + total_tokens_list.append(llm_attrs.total_tokens) + + # Collect finish reasons + if llm_attrs.finish_reasons: + for reason in llm_attrs.finish_reasons: + finish_reasons_count[reason] = finish_reasons_count.get(reason, 0) + 1 + + # Count errors + if span.has_error: + error_count += 1 + else: + success_count += 1 + + # Calculate statistics + if request_count == 0: + return json.dumps( + {"error": f"No traces found for model '{model_name}' in the specified time range"} + ) + + result = { + "model": model_name, + "request_count": request_count, + "success_count": success_count, + "error_count": error_count, + "success_rate": round(success_count / request_count * 100, 2) + if request_count > 0 + else 0, + "error_rate": round(error_count / request_count * 100, 2) if request_count > 0 else 0, + "duration_ms": calculate_percentiles(durations), + "tokens": { + "prompt": calculate_percentiles(prompt_tokens_list), + "completion": calculate_percentiles(completion_tokens_list), + "total": calculate_percentiles(total_tokens_list), + }, + "finish_reasons": finish_reasons_count if finish_reasons_count else None, + } + + return json.dumps(result, indent=2) + + except Exception as e: + return json.dumps({"error": f"Failed to get model stats: {str(e)}"}) diff --git a/src/opentelemetry_mcp/tools/search.py b/src/opentelemetry_mcp/tools/search.py new file mode 100644 index 0000000..b43556a --- /dev/null +++ b/src/opentelemetry_mcp/tools/search.py @@ -0,0 +1,117 @@ +"""Search traces tool implementation.""" + +import json +from typing import Any + +from pydantic import ValidationError + +from opentelemetry_mcp.backends.base import BaseBackend +from opentelemetry_mcp.models import Filter, TraceQuery, TraceSummary +from opentelemetry_mcp.utils import parse_iso_timestamp + + +async def search_traces( + backend: BaseBackend, + service_name: str | None = None, + operation_name: str | None = None, + start_time: str | None = None, + end_time: str | None = None, + min_duration_ms: int | None = None, + max_duration_ms: int | None = None, + gen_ai_system: str | None = None, + gen_ai_request_model: str | None = None, + gen_ai_response_model: str | None = None, + has_error: bool | None = None, + tags: dict[str, str] | None = None, + filters: list[dict[str, Any]] | None = None, + limit: int = 100, +) -> str: + """Search for OpenTelemetry traces with optional filters. + + Supports both simple parameters and the new generic filter system. + + Args: + backend: Backend instance to query + service_name: Filter by service name + operation_name: Filter by operation/span name + start_time: Start time (ISO 8601 format) + end_time: End time (ISO 8601 format) + min_duration_ms: Minimum trace duration in milliseconds + max_duration_ms: Maximum trace duration in milliseconds + gen_ai_system: Filter by LLM provider + gen_ai_request_model: Filter by requested model name + gen_ai_response_model: Filter by actual model used + has_error: Filter traces with errors + tags: Additional tag filters as key-value pairs + filters: Generic filter conditions (list of filter objects) + limit: Maximum number of traces to return (1-1000) + + Returns: + JSON string with trace summaries + + Example filter: + { + "field": "gen_ai.usage.prompt_tokens", + "operator": "gt", + "value": 1000, + "value_type": "number" + } + """ + # Parse timestamps + start_dt, error = parse_iso_timestamp(start_time, "start_time") + if error: + return json.dumps({"error": error}) + + end_dt, error = parse_iso_timestamp(end_time, "end_time") + if error: + return json.dumps({"error": error}) + + # Parse filters from dicts to Filter models + filter_objects = [] + if filters: + try: + for filter_dict in filters: + filter_obj = Filter(**filter_dict) + filter_objects.append(filter_obj) + except ValidationError as e: + return json.dumps({"error": f"Invalid filter format: {e}"}) + except Exception as e: + return json.dumps({"error": f"Failed to parse filters: {e}"}) + + try: + # Build query + query = TraceQuery( + service_name=service_name, + operation_name=operation_name, + start_time=start_dt, + end_time=end_dt, + min_duration_ms=min_duration_ms, + max_duration_ms=max_duration_ms, + gen_ai_system=gen_ai_system, + gen_ai_request_model=gen_ai_request_model, + gen_ai_response_model=gen_ai_response_model, + has_error=has_error, + tags=tags or {}, + filters=filter_objects, + limit=limit, + ) + except ValidationError as e: + return json.dumps({"error": f"Invalid query parameters: {e}"}) + + try: + # Execute search + traces = await backend.search_traces(query) + + # Convert to summaries + summaries = [TraceSummary.from_trace(trace) for trace in traces] + + # Return as JSON + result = { + "count": len(summaries), + "traces": [s.model_dump(mode="json") for s in summaries], + } + + return json.dumps(result, indent=2, default=str) + + except Exception as e: + return json.dumps({"error": f"Failed to search traces: {str(e)}"}) diff --git a/src/opentelemetry_mcp/tools/search_spans.py b/src/opentelemetry_mcp/tools/search_spans.py new file mode 100644 index 0000000..f173dd8 --- /dev/null +++ b/src/opentelemetry_mcp/tools/search_spans.py @@ -0,0 +1,119 @@ +"""Search spans tool implementation.""" + +import json +from typing import Any + +from pydantic import ValidationError + +from opentelemetry_mcp.backends.base import BaseBackend +from opentelemetry_mcp.models import Filter, SpanQuery, SpanSummary +from opentelemetry_mcp.utils import parse_iso_timestamp + + +async def search_spans( + backend: BaseBackend, + service_name: str | None = None, + operation_name: str | None = None, + start_time: str | None = None, + end_time: str | None = None, + min_duration_ms: int | None = None, + max_duration_ms: int | None = None, + gen_ai_system: str | None = None, + gen_ai_request_model: str | None = None, + gen_ai_response_model: str | None = None, + has_error: bool | None = None, + tags: dict[str, str] | None = None, + filters: list[dict[str, Any]] | None = None, + limit: int = 100, +) -> str: + """Search for individual OpenTelemetry spans with optional filters. + + Unlike search_traces, this returns individual spans rather than grouped traces, + which is useful for analyzing specific operations or finding spans with certain + characteristics (e.g., LLM tool calls with traceloop.span.kind == tool). + + Args: + backend: Backend instance to query + service_name: Filter by service name + operation_name: Filter by operation/span name + start_time: Start time (ISO 8601 format) + end_time: End time (ISO 8601 format) + min_duration_ms: Minimum span duration in milliseconds + max_duration_ms: Maximum span duration in milliseconds + gen_ai_system: Filter by LLM provider + gen_ai_request_model: Filter by requested model name + gen_ai_response_model: Filter by actual model used + has_error: Filter spans with errors + tags: Additional tag filters as key-value pairs + filters: Generic filter conditions (list of filter objects) + limit: Maximum number of spans to return (1-1000) + + Returns: + JSON string with span summaries + + Example filter to find LLM tool calls: + { + "field": "traceloop.span.kind", + "operator": "equals", + "value": "tool", + "value_type": "string" + } + """ + # Parse timestamps + start_dt, error = parse_iso_timestamp(start_time, "start_time") + if error: + return json.dumps({"error": error}) + + end_dt, error = parse_iso_timestamp(end_time, "end_time") + if error: + return json.dumps({"error": error}) + + # Parse filters from dicts to Filter models + filter_objects = [] + if filters: + try: + for filter_dict in filters: + filter_obj = Filter(**filter_dict) + filter_objects.append(filter_obj) + except ValidationError as e: + return json.dumps({"error": f"Invalid filter format: {e}"}) + except Exception as e: + return json.dumps({"error": f"Failed to parse filters: {e}"}) + + # Build query + try: + query = SpanQuery( + service_name=service_name, + operation_name=operation_name, + start_time=start_dt, + end_time=end_dt, + min_duration_ms=min_duration_ms, + max_duration_ms=max_duration_ms, + gen_ai_system=gen_ai_system, + gen_ai_request_model=gen_ai_request_model, + gen_ai_response_model=gen_ai_response_model, + has_error=has_error, + tags=tags or {}, + filters=filter_objects, + limit=limit, + ) + except ValidationError as e: + return json.dumps({"error": f"Invalid query parameters: {e}"}) + + try: + # Execute search + spans = await backend.search_spans(query) + + # Convert to summaries + summaries = [SpanSummary.from_span(span) for span in spans] + + # Return as JSON + result = { + "count": len(summaries), + "spans": [s.model_dump(mode="json") for s in summaries], + } + + return json.dumps(result, indent=2, default=str) + + except Exception as e: + return json.dumps({"error": f"Failed to search spans: {str(e)}"}) diff --git a/src/opentelemetry_mcp/tools/services.py b/src/opentelemetry_mcp/tools/services.py new file mode 100644 index 0000000..0f771a8 --- /dev/null +++ b/src/opentelemetry_mcp/tools/services.py @@ -0,0 +1,52 @@ +"""List services and operations tool implementation.""" + +import json + +from opentelemetry_mcp.backends.base import BaseBackend + + +async def list_services(backend: BaseBackend) -> str: + """List all available services in the backend. + + Args: + backend: Backend instance to query + + Returns: + JSON string with list of service names + """ + try: + services = await backend.list_services() + + result = {"count": len(services), "services": sorted(services)} + + return json.dumps(result, indent=2) + + except Exception as e: + return json.dumps({"error": f"Failed to list services: {str(e)}"}) + + +async def get_service_operations(backend: BaseBackend, service_name: str) -> str: + """Get all operations for a specific service. + + Args: + backend: Backend instance to query + service_name: Service name to query + + Returns: + JSON string with list of operation names + """ + try: + operations = await backend.get_service_operations(service_name) + + result = { + "service_name": service_name, + "count": len(operations), + "operations": sorted(operations), + } + + return json.dumps(result, indent=2) + + except Exception as e: + return json.dumps( + {"error": f"Failed to get operations for service {service_name}: {str(e)}"} + ) diff --git a/src/opentelemetry_mcp/tools/slow_traces.py b/src/opentelemetry_mcp/tools/slow_traces.py new file mode 100644 index 0000000..155e72a --- /dev/null +++ b/src/opentelemetry_mcp/tools/slow_traces.py @@ -0,0 +1,114 @@ +"""Slow traces tool implementation.""" + +import json + +from opentelemetry_mcp.backends.base import BaseBackend +from opentelemetry_mcp.models import LLMSpanAttributes, TraceQuery +from opentelemetry_mcp.utils import parse_iso_timestamp + + +async def get_slow_traces( + backend: BaseBackend, + limit: int = 10, + start_time: str | None = None, + end_time: str | None = None, + min_duration_ms: int | None = None, + service_name: str | None = None, + gen_ai_request_model: str | None = None, + gen_ai_response_model: str | None = None, +) -> str: + """Find slowest LLM traces by duration. + + Args: + backend: Backend instance to query + limit: Maximum number of traces to return (default: 10) + start_time: Start time (ISO 8601 format) + end_time: End time (ISO 8601 format) + min_duration_ms: Minimum duration threshold in milliseconds + service_name: Filter by service name + gen_ai_request_model: Filter by requested model name + gen_ai_response_model: Filter by actual model used + + Returns: + JSON string with top N slowest traces + """ + # Parse timestamps + start_dt, error = parse_iso_timestamp(start_time, "start_time") + if error: + return json.dumps({"error": error}) + + end_dt, error = parse_iso_timestamp(end_time, "end_time") + if error: + return json.dumps({"error": error}) + + try: + # Build query to fetch traces (use larger limit to find top N) + query = TraceQuery( + start_time=start_dt, + end_time=end_dt, + service_name=service_name, + gen_ai_request_model=gen_ai_request_model, + gen_ai_response_model=gen_ai_response_model, + min_duration_ms=min_duration_ms, + limit=min(limit * 10, 1000), # Fetch more to ensure we get enough slow ones + ) + + # Search traces + trace_summaries = await backend.search_traces(query) + + # Collect trace data with durations + slow_traces = [] + + for summary in trace_summaries: + # Get full trace to access LLM spans + trace = await backend.get_trace(summary.trace_id) + + # Only include traces that have LLM spans + if not trace.llm_spans: + continue + + total_tokens = 0 + models_used = set() + + for span in trace.llm_spans: + llm_attrs = LLMSpanAttributes.from_span(span) + if not llm_attrs: + continue + + # Calculate total tokens + if llm_attrs.total_tokens: + total_tokens += llm_attrs.total_tokens + + # Track models + model = llm_attrs.response_model or llm_attrs.request_model + if model: + models_used.add(model) + + slow_traces.append( + { + "trace_id": trace.trace_id, + "service_name": trace.service_name, + "operation_name": trace.root_operation, + "start_time": trace.start_time.isoformat(), + "duration_ms": round(trace.duration_ms, 2), + "models": sorted(list(models_used)), + "total_tokens": total_tokens, + "llm_span_count": len(trace.llm_spans), + "status": trace.status, + "has_errors": trace.has_errors, + } + ) + + # Sort by duration descending and take top N + slow_traces.sort(key=lambda x: x["duration_ms"], reverse=True) # type: ignore[arg-type, return-value] + top_traces = slow_traces[:limit] + + result = { + "count": len(top_traces), + "traces": top_traces, + } + + return json.dumps(result, indent=2) + + except Exception as e: + return json.dumps({"error": f"Failed to get slow traces: {str(e)}"}) diff --git a/src/opentelemetry_mcp/tools/trace.py b/src/opentelemetry_mcp/tools/trace.py new file mode 100644 index 0000000..953d85c --- /dev/null +++ b/src/opentelemetry_mcp/tools/trace.py @@ -0,0 +1,80 @@ +"""Get trace tool implementation.""" + +import json +from typing import Any + +from opentelemetry_mcp.backends.base import BaseBackend +from opentelemetry_mcp.models import LLMSpanAttributes + + +async def get_trace(backend: BaseBackend, trace_id: str) -> str: + """Get complete trace details by trace ID. + + Args: + backend: Backend instance to query + trace_id: Trace identifier + + Returns: + JSON string with complete trace data including all spans + """ + try: + # Fetch trace + trace = await backend.get_trace(trace_id) + + # Build detailed response + result: dict[str, Any] = { + "trace_id": trace.trace_id, + "service_name": trace.service_name, + "root_operation": trace.root_operation, + "start_time": trace.start_time.isoformat(), + "duration_ms": trace.duration_ms, + "status": trace.status, + "span_count": len(trace.spans), + "has_errors": trace.has_errors, + "spans": [], + } + + # Add span details + spans: list[Any] = result["spans"] + for span in trace.spans: + span_data: dict[str, Any] = { + "span_id": span.span_id, + "parent_span_id": span.parent_span_id, + "operation_name": span.operation_name, + "service_name": span.service_name, + "start_time": span.start_time.isoformat(), + "duration_ms": span.duration_ms, + "status": span.status, + "attributes": span.attributes.to_dict(), + } + + # If it's an LLM span, parse Opentelemetry attributes + if span.is_llm_span: + llm_attrs = LLMSpanAttributes.from_span(span) + if llm_attrs: + span_data["llm_attributes"] = llm_attrs.model_dump( + mode="json", exclude_none=True + ) + + spans.append(span_data) + + # Add LLM-specific summary + if trace.llm_spans: + result["llm_summary"] = { + "llm_span_count": len(trace.llm_spans), + "total_tokens": trace.total_llm_tokens, + "models_used": list( + { + span.attributes.gen_ai_request_model + or span.attributes.gen_ai_response_model + for span in trace.llm_spans + if span.attributes.gen_ai_request_model + or span.attributes.gen_ai_response_model + } + ), + } + + return json.dumps(result, indent=2, default=str) + + except Exception as e: + return json.dumps({"error": f"Failed to fetch trace: {str(e)}"}) diff --git a/src/opentelemetry_mcp/tools/usage.py b/src/opentelemetry_mcp/tools/usage.py new file mode 100644 index 0000000..96e3ea5 --- /dev/null +++ b/src/opentelemetry_mcp/tools/usage.py @@ -0,0 +1,114 @@ +"""LLM usage metrics tool implementation.""" + +import json +from typing import Any + +from opentelemetry_mcp.backends.base import BaseBackend +from opentelemetry_mcp.models import LLMSpanAttributes, TraceQuery, UsageMetrics +from opentelemetry_mcp.utils import parse_iso_timestamp + + +async def get_llm_usage( + backend: BaseBackend, + start_time: str | None = None, + end_time: str | None = None, + service_name: str | None = None, + gen_ai_system: str | None = None, + gen_ai_request_model: str | None = None, + gen_ai_response_model: str | None = None, + limit: int = 1000, +) -> str: + """Get aggregated LLM usage metrics for a time period. + + Args: + backend: Backend instance to query + start_time: Start time (ISO 8601 format) + end_time: End time (ISO 8601 format) + service_name: Filter by service name + gen_ai_system: Filter by LLM provider (openai, anthropic, etc.) + gen_ai_request_model: Filter by requested model name + gen_ai_response_model: Filter by actual model used + limit: Maximum number of traces to analyze (default: 1000) + + Returns: + JSON string with aggregated usage metrics + """ + # Parse timestamps + start_dt, error = parse_iso_timestamp(start_time, "start_time") + if error: + return json.dumps({"error": error}) + + end_dt, error = parse_iso_timestamp(end_time, "end_time") + if error: + return json.dumps({"error": error}) + + # Build query to find LLM traces + query = TraceQuery( + service_name=service_name, + start_time=start_dt, + end_time=end_dt, + gen_ai_system=gen_ai_system, + gen_ai_request_model=gen_ai_request_model, + gen_ai_response_model=gen_ai_response_model, + limit=limit, + ) + + try: + # Search for traces + traces = await backend.search_traces(query) + + # Aggregate usage metrics + metrics = UsageMetrics() + + for trace in traces: + for span in trace.llm_spans: + llm_attrs = LLMSpanAttributes.from_span(span) + if llm_attrs: + metrics.add_span(span, llm_attrs) + + # Build result + result: dict[str, Any] = { + "period": { + "start_time": start_dt.isoformat() if start_dt else None, + "end_time": end_dt.isoformat() if end_dt else None, + }, + "filters": { + "service_name": service_name, + "gen_ai_system": gen_ai_system, + "gen_ai_request_model": gen_ai_request_model, + "gen_ai_response_model": gen_ai_response_model, + }, + "summary": { + "total_requests": metrics.request_count, + "total_prompt_tokens": metrics.prompt_tokens, + "total_completion_tokens": metrics.completion_tokens, + "total_tokens": metrics.total_tokens, + }, + "by_model": {}, + "by_service": {}, + } + + # Add model breakdown + by_model: dict[str, Any] = result["by_model"] + for model, model_metrics in metrics.by_model.items(): + by_model[model] = { + "requests": model_metrics.request_count, + "prompt_tokens": model_metrics.prompt_tokens, + "completion_tokens": model_metrics.completion_tokens, + "total_tokens": model_metrics.total_tokens, + } + + # Add service breakdown + by_service: dict[str, Any] = result["by_service"] + for service, service_metrics in metrics.by_service.items(): + by_service[service] = { + "requests": service_metrics.request_count, + "prompt_tokens": service_metrics.prompt_tokens, + "completion_tokens": service_metrics.completion_tokens, + "total_tokens": service_metrics.total_tokens, + } + + return json.dumps(result, indent=2, default=str) + + except Exception as e: + return json.dumps({"error": f"Failed to get usage metrics: {str(e)}"}) diff --git a/src/opentelemetry_mcp/utils.py b/src/opentelemetry_mcp/utils.py new file mode 100644 index 0000000..c08fc3c --- /dev/null +++ b/src/opentelemetry_mcp/utils.py @@ -0,0 +1,23 @@ +"""Shared utility functions.""" + +from datetime import datetime + + +def parse_iso_timestamp( + timestamp_str: str | None, param_name: str +) -> tuple[datetime | None, str | None]: + """Parse ISO 8601 timestamp string. + + Args: + timestamp_str: ISO 8601 timestamp string (e.g., "2024-01-01T00:00:00Z") + param_name: Parameter name for error messages + + Returns: + Tuple of (parsed datetime, error message or None) + """ + if not timestamp_str: + return None, None + try: + return datetime.fromisoformat(timestamp_str.replace("Z", "+00:00")), None + except ValueError as e: + return None, f"Invalid {param_name} format: {e}" diff --git a/start_locally.sh b/start_locally.sh new file mode 100755 index 0000000..e2ec581 --- /dev/null +++ b/start_locally.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +# OpenTelemetry MCP Server - Local Startup Script +# This script starts the server in stdio mode for local development + +set -e # Exit on error + +# Auto-detect script directory (works regardless of where script is called from) +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd "$SCRIPT_DIR" + +echo "Starting OpenTelemetry MCP Server from: $SCRIPT_DIR" >&2 + +# Check if uv is installed +if ! command -v uv &> /dev/null; then + echo "Error: 'uv' is not installed or not in PATH" >&2 + echo "Please install uv: https://github.com/astral-sh/uv" >&2 + exit 1 +fi + +# ============================================ +# Backend Configuration +# ============================================ +# Uncomment and configure ONE of the backends below: + +## Jaeger (local) +export BACKEND_TYPE="jaeger" +export BACKEND_URL="http://localhost:16686" + +## Traceloop (cloud) +# export BACKEND_TYPE="traceloop" +# export BACKEND_URL="https://api.traceloop.com" +# export BACKEND_API_KEY="your-api-key-here" # Set your API key here or via environment + +## Tempo (local) +# export BACKEND_TYPE="tempo" +# export BACKEND_URL="http://localhost:3200" + +# ============================================ +# Optional Configuration +# ============================================ +# export LOG_LEVEL="DEBUG" # DEBUG, INFO, WARNING, ERROR +# export MAX_TRACES_PER_QUERY="100" +# export BACKEND_TIMEOUT="30" + +# ============================================ +# Start Server +# ============================================ +echo "Backend: $BACKEND_TYPE" >&2 +echo "URL: $BACKEND_URL" >&2 +echo "" >&2 + +# Start the MCP server in stdio mode (for Claude Desktop/MCP clients) +uv run opentelemetry-mcp --transport stdio --backend "$BACKEND_TYPE" --url "$BACKEND_URL" diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..7e7c71a --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1 @@ +"""Tests for Opentelemetry MCP Server.""" diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..49328be --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,78 @@ +"""Pytest configuration and fixtures.""" + +from typing import Any + +import pytest +from pydantic import HttpUrl + +from opentelemetry_mcp.attributes import SpanAttributes +from opentelemetry_mcp.config import BackendConfig +from opentelemetry_mcp.models import SpanData, TraceData + + +@pytest.fixture +def sample_span_data() -> dict[str, Any]: + """Sample Jaeger span data for testing.""" + return { + "traceID": "abc123", + "spanID": "span1", + "operationName": "test_operation", + "startTime": 1234567890000000, # microseconds + "duration": 5000000, # microseconds (5s) + "tags": [ + {"key": "gen_ai.system", "value": "openai"}, + {"key": "gen_ai.request.model", "value": "gpt-4"}, + {"key": "gen_ai.usage.prompt_tokens", "value": 100}, + {"key": "gen_ai.usage.completion_tokens", "value": 200}, + {"key": "gen_ai.usage.total_tokens", "value": 300}, + ], + "process": {"serviceName": "test-service"}, + "references": [], + "logs": [], + } + + +@pytest.fixture +def sample_trace_data() -> TraceData: + """Sample TraceData for testing.""" + from datetime import datetime + + span = SpanData( + trace_id="abc123", + span_id="span1", + parent_span_id=None, + operation_name="test_operation", + service_name="test-service", + start_time=datetime.now(), + duration_ms=5000, + status="OK", + attributes=SpanAttributes.model_validate( + { + "gen_ai.system": "openai", + "gen_ai.request.model": "gpt-4", + "gen_ai.usage.prompt_tokens": 100, + "gen_ai.usage.completion_tokens": 200, + "gen_ai.usage.total_tokens": 300, + } + ), + ) + + return TraceData( + trace_id="abc123", + spans=[span], + start_time=span.start_time, + duration_ms=5000, + service_name="test-service", + root_operation="test_operation", + status="OK", + ) + + +@pytest.fixture +def jaeger_backend_config() -> BackendConfig: + """Jaeger backend configuration for testing.""" + return BackendConfig( + type="jaeger", + url=HttpUrl("http://localhost:16686"), + timeout=5.0, + ) diff --git a/tests/integration/__init__.py b/tests/integration/__init__.py new file mode 100644 index 0000000..f24472a --- /dev/null +++ b/tests/integration/__init__.py @@ -0,0 +1 @@ +"""Integration tests using VCR recordings against real backends.""" diff --git a/tests/integration/cassettes/test_jaeger_integration/TestJaegerBackendHealth.test_health_check_healthy.yaml b/tests/integration/cassettes/test_jaeger_integration/TestJaegerBackendHealth.test_health_check_healthy.yaml new file mode 100644 index 0000000..bb37bb8 --- /dev/null +++ b/tests/integration/cassettes/test_jaeger_integration/TestJaegerBackendHealth.test_health_check_healthy.yaml @@ -0,0 +1,32 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services + response: + body: + string: '{"data":["travel-agent-demo","trace-analyzer-agent","model-comparison","jaeger"],"total":4,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:01:48 GMT + Traceresponse: + - 00-0a133b2ffa5d05faf89fe1f489cb020e-8a526433ee1e70cb-01 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_jaeger_integration/TestJaegerGetTrace.test_get_trace_by_id.yaml b/tests/integration/cassettes/test_jaeger_integration/TestJaegerGetTrace.test_get_trace_by_id.yaml new file mode 100644 index 0000000..2bcb6fe --- /dev/null +++ b/tests/integration/cassettes/test_jaeger_integration/TestJaegerGetTrace.test_get_trace_by_id.yaml @@ -0,0 +1,92 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services + response: + body: + string: '{"data":["jaeger","travel-agent-demo","trace-analyzer-agent","model-comparison"],"total":4,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-1b2fc22905854f85ef8a9a36ee3fff31-f607fe678e8ca960-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces?service=jaeger&limit=1 + response: + body: + string: '{"data":[{"traceID":"0a133b2ffa5d05faf89fe1f489cb020e","spans":[{"traceID":"0a133b2ffa5d05faf89fe1f489cb020e","spanID":"8a526433ee1e70cb","operationName":"/api/services","references":[],"startTime":1763038908559873,"duration":1576,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":126},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":35425},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"python-httpx/0.28.1"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null}],"total":0,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '1735' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-eaff3ebd8dc657051c5c784033270593-90aed672eac412c2-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces/0a133b2ffa5d05faf89fe1f489cb020e + response: + body: + string: '{"data":[{"traceID":"0a133b2ffa5d05faf89fe1f489cb020e","spans":[{"traceID":"0a133b2ffa5d05faf89fe1f489cb020e","spanID":"8a526433ee1e70cb","operationName":"/api/services","references":[],"startTime":1763038908559873,"duration":1576,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":126},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":35425},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"python-httpx/0.28.1"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null}],"total":0,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '1735' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-6e936e61d1d3d13e25f97ed21245c02e-55e2cbe49ba35522-01 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_jaeger_integration/TestJaegerGetTrace.test_get_trace_invalid_id.yaml b/tests/integration/cassettes/test_jaeger_integration/TestJaegerGetTrace.test_get_trace_invalid_id.yaml new file mode 100644 index 0000000..928d9b2 --- /dev/null +++ b/tests/integration/cassettes/test_jaeger_integration/TestJaegerGetTrace.test_get_trace_invalid_id.yaml @@ -0,0 +1,37 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces/00000000000000000000000000000000 + response: + body: + string: '{"data":null,"total":0,"limit":0,"offset":0,"errors":[{"code":404,"msg":"trace + not found"}]} + + ' + headers: + Content-Length: + - '93' + Content-Type: + - text/plain; charset=utf-8 + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-4d4da0cf1565eed923c630f2a84b3662-97afeea557395a84-01 + X-Content-Type-Options: + - nosniff + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/integration/cassettes/test_jaeger_integration/TestJaegerLLMSpans.test_search_llm_spans.yaml b/tests/integration/cassettes/test_jaeger_integration/TestJaegerLLMSpans.test_search_llm_spans.yaml new file mode 100644 index 0000000..8332c69 --- /dev/null +++ b/tests/integration/cassettes/test_jaeger_integration/TestJaegerLLMSpans.test_search_llm_spans.yaml @@ -0,0 +1,62 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services + response: + body: + string: '{"data":["model-comparison","jaeger","travel-agent-demo","trace-analyzer-agent"],"total":4,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-2340f11fb2d7b5a8ca82b103f88decb0-8762ca2ba9079804-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces?service=model-comparison&limit=40 + response: + body: + string: '{"data":[],"total":0,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '56' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-72ea88340253426d4d5e80ab1fa3d20d-11959d07d1dbdb36-01 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_jaeger_integration/TestJaegerLLMSpans.test_search_traces_with_llm_model_filter.yaml b/tests/integration/cassettes/test_jaeger_integration/TestJaegerLLMSpans.test_search_traces_with_llm_model_filter.yaml new file mode 100644 index 0000000..1ab7a00 --- /dev/null +++ b/tests/integration/cassettes/test_jaeger_integration/TestJaegerLLMSpans.test_search_traces_with_llm_model_filter.yaml @@ -0,0 +1,152 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services + response: + body: + string: '{"data":["jaeger","travel-agent-demo","trace-analyzer-agent","model-comparison"],"total":4,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-16c3b3432a1bb1713b73b65649e4cf1b-8abd41baaa2226ff-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces?service=jaeger&limit=5&tags=%7B%22gen_ai.request.model%22%3A+%22gpt-4%22%7D + response: + body: + string: '{"data":[],"total":0,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '56' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-8dd9fa5862ae7aca4f3a63ec10c64985-3b56fdcb25ff2a7d-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces?service=jaeger&limit=5&tags=%7B%22gen_ai.request.model%22%3A+%22gpt-3.5-turbo%22%7D + response: + body: + string: '{"data":[],"total":0,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '56' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-281f88a5a93f22b67aa881deaddf3b3d-fe45fab3141113b9-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces?service=jaeger&limit=5&tags=%7B%22gen_ai.request.model%22%3A+%22claude-3%22%7D + response: + body: + string: '{"data":[],"total":0,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '56' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-c56fb4d841d47633922378d74e180ae1-4e3c507e7a22d083-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces?service=jaeger&limit=5&tags=%7B%22gen_ai.request.model%22%3A+%22claude-2%22%7D + response: + body: + string: '{"data":[],"total":0,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '56' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-a8b676e68ae1edff6fbed9230e9809b3-98e056573faa05e1-01 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_jaeger_integration/TestJaegerListServices.test_list_services.yaml b/tests/integration/cassettes/test_jaeger_integration/TestJaegerListServices.test_list_services.yaml new file mode 100644 index 0000000..a3f9a70 --- /dev/null +++ b/tests/integration/cassettes/test_jaeger_integration/TestJaegerListServices.test_list_services.yaml @@ -0,0 +1,32 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services + response: + body: + string: '{"data":["jaeger","travel-agent-demo","trace-analyzer-agent","model-comparison"],"total":4,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-7c94e399de79b37042e789c86ca5de50-1fd480fa282ec584-01 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchSpans.test_search_spans_basic.yaml b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchSpans.test_search_spans_basic.yaml new file mode 100644 index 0000000..a29addb --- /dev/null +++ b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchSpans.test_search_spans_basic.yaml @@ -0,0 +1,62 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services + response: + body: + string: '{"data":["model-comparison","jaeger","travel-agent-demo","trace-analyzer-agent"],"total":4,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-ed27da3dc86fa19ef084ba4efe13d152-3bb0020d8df97660-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces?service=model-comparison&limit=40 + response: + body: + string: '{"data":[],"total":0,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '56' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-c44d7ba6eb79231d3a9785ab72d71d8a-6988f84739570130-01 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchSpans.test_search_spans_with_generic_filter.yaml b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchSpans.test_search_spans_with_generic_filter.yaml new file mode 100644 index 0000000..90c9e9e --- /dev/null +++ b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchSpans.test_search_spans_with_generic_filter.yaml @@ -0,0 +1,62 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services + response: + body: + string: '{"data":["model-comparison","jaeger","travel-agent-demo","trace-analyzer-agent"],"total":4,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-3c4931d3eec6300a2034387ca24daff9-0eff9be6378b1363-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces?service=model-comparison&limit=40 + response: + body: + string: '{"data":[],"total":0,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '56' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-d734368cbf1bccab96b83ddf8a3cc2ab-7d0b4b7a1805a5b2-01 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchSpans.test_search_spans_with_limit.yaml b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchSpans.test_search_spans_with_limit.yaml new file mode 100644 index 0000000..dc001a6 --- /dev/null +++ b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchSpans.test_search_spans_with_limit.yaml @@ -0,0 +1,98 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services + response: + body: + string: '{"data":["jaeger","travel-agent-demo","trace-analyzer-agent","model-comparison"],"total":4,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-51dfa7a29c216968914e61de5a15535c-396fd4f8ed994867-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces?service=jaeger&limit=20 + response: + body: + string: '{"data":[{"traceID":"0a133b2ffa5d05faf89fe1f489cb020e","spans":[{"traceID":"0a133b2ffa5d05faf89fe1f489cb020e","spanID":"8a526433ee1e70cb","operationName":"/api/services","references":[],"startTime":1763038908559873,"duration":1576,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":126},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":35425},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"python-httpx/0.28.1"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"f32788bf0c0139422b6740730014efc0","spans":[{"traceID":"f32788bf0c0139422b6740730014efc0","spanID":"ca4b20e4ff3f8cc1","operationName":"/api/services","references":[],"startTime":1763038796964414,"duration":18396,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":126},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":42204},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"curl/8.7.1"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"1a5a797a62b4258d0b8c27fa6dce775e","spans":[{"traceID":"1a5a797a62b4258d0b8c27fa6dce775e","spanID":"8dc83b377228723b","operationName":"/api/services/{service}/operations","references":[],"startTime":1762875058548803,"duration":388,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":279},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services/{service}/operations"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":54309},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services/travel-agent-demo/operations"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"062e848dd2141f687dc0c075740a9336","spans":[{"traceID":"062e848dd2141f687dc0c075740a9336","spanID":"0a2140ec63099743","operationName":"/api/services","references":[],"startTime":1762875058549455,"duration":154,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":126},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":48931},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"7c99e184607854405c6b7c710237cc9a","spans":[{"traceID":"7c99e184607854405c6b7c710237cc9a","spanID":"9a30289749f7cb28","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056854574,"duration":932,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":37987},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"9118c026cdd270ba42f3d1bdacee1a5f","spans":[{"traceID":"9118c026cdd270ba42f3d1bdacee1a5f","spanID":"457eea88b7cc7667","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056851059,"duration":262,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":48931},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"e7932a2c99def9ad022dbddd1a8cf9cf","spans":[{"traceID":"e7932a2c99def9ad022dbddd1a8cf9cf","spanID":"28f262f43799b568","operationName":"/api/metrics/calls","references":[],"startTime":1762875056849016,"duration":1196,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/calls"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":43901},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/calls"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"9dad0fbd40bb6c67a5d47a0ca478c441","spans":[{"traceID":"9dad0fbd40bb6c67a5d47a0ca478c441","spanID":"10afb27015b3e98f","operationName":"/api/metrics/calls","references":[],"startTime":1762875056854384,"duration":147,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/calls"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":48931},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/calls"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"630b5de079516eadb159fa8f78b8e219","spans":[{"traceID":"630b5de079516eadb159fa8f78b8e219","spanID":"66ab07734f4f64ba","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056848657,"duration":1279,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":54309},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"27c89f0bedca520adf874fb5a2c9d7f4","spans":[{"traceID":"27c89f0bedca520adf874fb5a2c9d7f4","spanID":"573729a39e73dc4f","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056854861,"duration":147,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":54309},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"799f79cd49b704f5f2e5f3554c7363b4","spans":[{"traceID":"799f79cd49b704f5f2e5f3554c7363b4","spanID":"30ad3309f4efa977","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056870339,"duration":133,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":37666},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"3fb988e146b8415aefb18a596e98dd10","spans":[{"traceID":"3fb988e146b8415aefb18a596e98dd10","spanID":"a714fb8cb4ddb244","operationName":"/api/metrics/calls","references":[],"startTime":1762875056868080,"duration":34,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/calls"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":37987},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/calls"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"0e9410c74ac3f83b5fca96840c7348dc","spans":[{"traceID":"0e9410c74ac3f83b5fca96840c7348dc","spanID":"c9f126c80177c5fa","operationName":"/api/metrics/errors","references":[],"startTime":1762875056861572,"duration":168,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/errors"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":54309},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/errors"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"2b1cd50592555608d8e52fccf1b38595","spans":[{"traceID":"2b1cd50592555608d8e52fccf1b38595","spanID":"0ed925b463e83e87","operationName":"/api/metrics/errors","references":[],"startTime":1762875056861629,"duration":84,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/errors"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":55795},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/errors"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"a58fd098dcc0e42b8ee20313aa8ae786","spans":[{"traceID":"a58fd098dcc0e42b8ee20313aa8ae786","spanID":"77dc1b4c6143771d","operationName":"/api/metrics/errors","references":[],"startTime":1762875056848536,"duration":1546,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/errors"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":55795},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/errors"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"2aabc888a78327f32180361421a364b4","spans":[{"traceID":"2aabc888a78327f32180361421a364b4","spanID":"94f22346a0b912ef","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056867409,"duration":126,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":54309},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"708b1c9ea00125c94a37efa748a30468","spans":[{"traceID":"708b1c9ea00125c94a37efa748a30468","spanID":"57dcfd42063ae58f","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056866680,"duration":163,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":55795},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"a094a6d198cb02d0c30ec65961e036f0","spans":[{"traceID":"a094a6d198cb02d0c30ec65961e036f0","spanID":"2085d32b2362fbb9","operationName":"/api/metrics/calls","references":[],"startTime":1762875056870300,"duration":212,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/calls"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":55795},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/calls"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"e8706d16014e12dbbbbb41b182a5d588","spans":[{"traceID":"e8706d16014e12dbbbbb41b182a5d588","spanID":"b3c01a67c7232b74","operationName":"/api/metrics/errors","references":[],"startTime":1762875056854466,"duration":297,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/errors"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":55795},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/errors"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"a6c9f798d6fa7aed6b85ee0b213d34b3","spans":[{"traceID":"a6c9f798d6fa7aed6b85ee0b213d34b3","spanID":"881501919d0eadd5","operationName":"/api/services","references":[],"startTime":1762875056848411,"duration":475,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":126},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":48931},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null}],"total":0,"limit":0,"offset":0,"errors":null}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-f6e874773df3c1debb9ec94144b3a653-cae56c478e1a3f86-01 + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchSpans.test_search_spans_with_operation.yaml b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchSpans.test_search_spans_with_operation.yaml new file mode 100644 index 0000000..740f6f8 --- /dev/null +++ b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchSpans.test_search_spans_with_operation.yaml @@ -0,0 +1,93 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services + response: + body: + string: '{"data":["travel-agent-demo","trace-analyzer-agent","model-comparison","jaeger"],"total":4,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:21:09 GMT + Traceresponse: + - 00-c2e2c71900653c2f00e9101acefa0f89-b3dca305188716fb-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services/travel-agent-demo/operations + response: + body: + string: '{"data":["create_itinerary.tool","Travel Planner Agent.agent","search_destinations.tool","get_destination_info.tool","openai.response","GET","get_location_coordinates.tool","get_weather_forecast.tool","Agent + Workflow","openai.chat"],"total":10,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '279' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:21:09 GMT + Traceresponse: + - 00-394351f4dd250053960e5c2bc151a736-169ec2e699e71163-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces?service=travel-agent-demo&operation=create_itinerary.tool&limit=40 + response: + body: + string: '{"data":[],"total":0,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '56' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:21:09 GMT + Traceresponse: + - 00-ca5a6417fe22fb1417b94f2b91c572cf-c78db0afc54da70b-01 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_basic.yaml b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_basic.yaml new file mode 100644 index 0000000..5ecaca2 --- /dev/null +++ b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_basic.yaml @@ -0,0 +1,78 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services + response: + body: + string: '{"data":["jaeger","travel-agent-demo","trace-analyzer-agent","model-comparison"],"total":4,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-dd3b3de029455f865324dbf94f741591-0c3aee92229bc4c5-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces?service=jaeger&limit=10 + response: + body: + string: '{"data":[{"traceID":"0a133b2ffa5d05faf89fe1f489cb020e","spans":[{"traceID":"0a133b2ffa5d05faf89fe1f489cb020e","spanID":"8a526433ee1e70cb","operationName":"/api/services","references":[],"startTime":1763038908559873,"duration":1576,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":126},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":35425},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"python-httpx/0.28.1"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"f32788bf0c0139422b6740730014efc0","spans":[{"traceID":"f32788bf0c0139422b6740730014efc0","spanID":"ca4b20e4ff3f8cc1","operationName":"/api/services","references":[],"startTime":1763038796964414,"duration":18396,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":126},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":42204},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"curl/8.7.1"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"1a5a797a62b4258d0b8c27fa6dce775e","spans":[{"traceID":"1a5a797a62b4258d0b8c27fa6dce775e","spanID":"8dc83b377228723b","operationName":"/api/services/{service}/operations","references":[],"startTime":1762875058548803,"duration":388,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":279},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services/{service}/operations"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":54309},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services/travel-agent-demo/operations"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"062e848dd2141f687dc0c075740a9336","spans":[{"traceID":"062e848dd2141f687dc0c075740a9336","spanID":"0a2140ec63099743","operationName":"/api/services","references":[],"startTime":1762875058549455,"duration":154,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":126},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":48931},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"7c99e184607854405c6b7c710237cc9a","spans":[{"traceID":"7c99e184607854405c6b7c710237cc9a","spanID":"9a30289749f7cb28","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056854574,"duration":932,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":37987},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"9118c026cdd270ba42f3d1bdacee1a5f","spans":[{"traceID":"9118c026cdd270ba42f3d1bdacee1a5f","spanID":"457eea88b7cc7667","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056851059,"duration":262,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":48931},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"e7932a2c99def9ad022dbddd1a8cf9cf","spans":[{"traceID":"e7932a2c99def9ad022dbddd1a8cf9cf","spanID":"28f262f43799b568","operationName":"/api/metrics/calls","references":[],"startTime":1762875056849016,"duration":1196,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/calls"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":43901},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/calls"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"9dad0fbd40bb6c67a5d47a0ca478c441","spans":[{"traceID":"9dad0fbd40bb6c67a5d47a0ca478c441","spanID":"10afb27015b3e98f","operationName":"/api/metrics/calls","references":[],"startTime":1762875056854384,"duration":147,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/calls"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":48931},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/calls"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"630b5de079516eadb159fa8f78b8e219","spans":[{"traceID":"630b5de079516eadb159fa8f78b8e219","spanID":"66ab07734f4f64ba","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056848657,"duration":1279,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":54309},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"27c89f0bedca520adf874fb5a2c9d7f4","spans":[{"traceID":"27c89f0bedca520adf874fb5a2c9d7f4","spanID":"573729a39e73dc4f","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056854861,"duration":147,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":54309},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null}],"total":0,"limit":0,"offset":0,"errors":null}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-0f88907e83cefa20f4b86d68ce8bf815-c69fb626d1b7ccf9-01 + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_with_duration_filter.yaml b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_with_duration_filter.yaml new file mode 100644 index 0000000..a2c00a0 --- /dev/null +++ b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_with_duration_filter.yaml @@ -0,0 +1,64 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services + response: + body: + string: '{"data":["jaeger","travel-agent-demo","trace-analyzer-agent","model-comparison"],"total":4,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-5c7a3fc3e6efbcbbb0ac04a8ef263952-fd79d3f40323d0d5-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces?service=jaeger&minDuration=100ms&limit=10 + response: + body: + string: '{"data":[{"traceID":"1d734c967c68f583f71156dcdfeaa552","spans":[{"traceID":"1d734c967c68f583f71156dcdfeaa552","spanID":"f3db609a4e0724b0","operationName":"/api/traces","references":[],"startTime":1762875022462143,"duration":174013,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":1294085},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/traces"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":24296},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/traces"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null}],"total":0,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '1833' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-0c5a2fe92e66ffb04b862b82d4b8d8e8-1e73faa7cbc6226e-01 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_with_error_filter.yaml b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_with_error_filter.yaml new file mode 100644 index 0000000..eeb50d9 --- /dev/null +++ b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_with_error_filter.yaml @@ -0,0 +1,78 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services + response: + body: + string: '{"data":["jaeger","travel-agent-demo","trace-analyzer-agent","model-comparison"],"total":4,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-866792beeca98cc045a66dea03bf3695-727c32123f04633e-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces?service=jaeger&limit=10 + response: + body: + string: '{"data":[{"traceID":"0a133b2ffa5d05faf89fe1f489cb020e","spans":[{"traceID":"0a133b2ffa5d05faf89fe1f489cb020e","spanID":"8a526433ee1e70cb","operationName":"/api/services","references":[],"startTime":1763038908559873,"duration":1576,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":126},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":35425},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"python-httpx/0.28.1"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"f32788bf0c0139422b6740730014efc0","spans":[{"traceID":"f32788bf0c0139422b6740730014efc0","spanID":"ca4b20e4ff3f8cc1","operationName":"/api/services","references":[],"startTime":1763038796964414,"duration":18396,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":126},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":42204},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"curl/8.7.1"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"1a5a797a62b4258d0b8c27fa6dce775e","spans":[{"traceID":"1a5a797a62b4258d0b8c27fa6dce775e","spanID":"8dc83b377228723b","operationName":"/api/services/{service}/operations","references":[],"startTime":1762875058548803,"duration":388,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":279},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services/{service}/operations"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":54309},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services/travel-agent-demo/operations"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"062e848dd2141f687dc0c075740a9336","spans":[{"traceID":"062e848dd2141f687dc0c075740a9336","spanID":"0a2140ec63099743","operationName":"/api/services","references":[],"startTime":1762875058549455,"duration":154,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":126},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":48931},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"7c99e184607854405c6b7c710237cc9a","spans":[{"traceID":"7c99e184607854405c6b7c710237cc9a","spanID":"9a30289749f7cb28","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056854574,"duration":932,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":37987},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"9118c026cdd270ba42f3d1bdacee1a5f","spans":[{"traceID":"9118c026cdd270ba42f3d1bdacee1a5f","spanID":"457eea88b7cc7667","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056851059,"duration":262,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":48931},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"e7932a2c99def9ad022dbddd1a8cf9cf","spans":[{"traceID":"e7932a2c99def9ad022dbddd1a8cf9cf","spanID":"28f262f43799b568","operationName":"/api/metrics/calls","references":[],"startTime":1762875056849016,"duration":1196,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/calls"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":43901},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/calls"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"9dad0fbd40bb6c67a5d47a0ca478c441","spans":[{"traceID":"9dad0fbd40bb6c67a5d47a0ca478c441","spanID":"10afb27015b3e98f","operationName":"/api/metrics/calls","references":[],"startTime":1762875056854384,"duration":147,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/calls"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":48931},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/calls"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"630b5de079516eadb159fa8f78b8e219","spans":[{"traceID":"630b5de079516eadb159fa8f78b8e219","spanID":"66ab07734f4f64ba","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056848657,"duration":1279,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":54309},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"27c89f0bedca520adf874fb5a2c9d7f4","spans":[{"traceID":"27c89f0bedca520adf874fb5a2c9d7f4","spanID":"573729a39e73dc4f","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056854861,"duration":147,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":54309},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null}],"total":0,"limit":0,"offset":0,"errors":null}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-1eeb591b85875746c4f20a05bc0e44e5-e1f9112b9ba3f97f-01 + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_with_generic_filter.yaml b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_with_generic_filter.yaml new file mode 100644 index 0000000..7b9073e --- /dev/null +++ b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_with_generic_filter.yaml @@ -0,0 +1,62 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services + response: + body: + string: '{"data":["model-comparison","jaeger","travel-agent-demo","trace-analyzer-agent"],"total":4,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-6e2f7ccff0cde8072da5213918d85cec-0197bf6e453fd94a-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces?service=model-comparison&limit=10 + response: + body: + string: '{"data":[],"total":0,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '56' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-1ff9bfaeecbe29179f55f65d4701daaa-9ee4d212397b7562-01 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_with_limit.yaml b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_with_limit.yaml new file mode 100644 index 0000000..d4f2119 --- /dev/null +++ b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_with_limit.yaml @@ -0,0 +1,68 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services + response: + body: + string: '{"data":["jaeger","travel-agent-demo","trace-analyzer-agent","model-comparison"],"total":4,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-70c6f8b89e705908bacf2f11586c1acb-c4e89b54d2a70286-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces?service=jaeger&limit=5 + response: + body: + string: '{"data":[{"traceID":"0a133b2ffa5d05faf89fe1f489cb020e","spans":[{"traceID":"0a133b2ffa5d05faf89fe1f489cb020e","spanID":"8a526433ee1e70cb","operationName":"/api/services","references":[],"startTime":1763038908559873,"duration":1576,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":126},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":35425},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"python-httpx/0.28.1"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"f32788bf0c0139422b6740730014efc0","spans":[{"traceID":"f32788bf0c0139422b6740730014efc0","spanID":"ca4b20e4ff3f8cc1","operationName":"/api/services","references":[],"startTime":1763038796964414,"duration":18396,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":126},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":42204},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"curl/8.7.1"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"1a5a797a62b4258d0b8c27fa6dce775e","spans":[{"traceID":"1a5a797a62b4258d0b8c27fa6dce775e","spanID":"8dc83b377228723b","operationName":"/api/services/{service}/operations","references":[],"startTime":1762875058548803,"duration":388,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":279},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services/{service}/operations"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":54309},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services/travel-agent-demo/operations"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"062e848dd2141f687dc0c075740a9336","spans":[{"traceID":"062e848dd2141f687dc0c075740a9336","spanID":"0a2140ec63099743","operationName":"/api/services","references":[],"startTime":1762875058549455,"duration":154,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":126},{"key":"http.response.status_code","type":"int64","value":200},{"key":"http.route","type":"string","value":"/api/services"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":48931},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/services"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"7c99e184607854405c6b7c710237cc9a","spans":[{"traceID":"7c99e184607854405c6b7c710237cc9a","spanID":"9a30289749f7cb28","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056854574,"duration":932,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":37987},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null}],"total":0,"limit":0,"offset":0,"errors":null}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-8bdc182b4384896942954e452bd6d3e3-219454ae416d1a15-01 + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_with_operation.yaml b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_with_operation.yaml new file mode 100644 index 0000000..d6bb6c6 --- /dev/null +++ b/tests/integration/cassettes/test_jaeger_integration/TestJaegerSearchTraces.test_search_traces_with_operation.yaml @@ -0,0 +1,112 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services + response: + body: + string: '{"data":["jaeger","travel-agent-demo","trace-analyzer-agent","model-comparison"],"total":4,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:21:09 GMT + Traceresponse: + - 00-7fbed5cb04284282a2274e8fed201feb-5d8b06e4f81151a9-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services/jaeger/operations + response: + body: + string: '{"data":["/api/metrics/latencies","/api/traces/{traceID}","/api/services/{service}/operations","/api/metrics/calls","/api/metrics/errors","/api/dependencies","/api/services","GET","/api/traces"],"total":9,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '240' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:21:09 GMT + Traceresponse: + - 00-f6f1f65c2d5a0cffdface4bfe1a5a5de-bde3be06f5692229-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/traces?service=jaeger&operation=%2Fapi%2Fmetrics%2Flatencies&limit=10 + response: + body: + string: '{"data":[{"traceID":"7c99e184607854405c6b7c710237cc9a","spans":[{"traceID":"7c99e184607854405c6b7c710237cc9a","spanID":"9a30289749f7cb28","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056854574,"duration":932,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":37987},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"9118c026cdd270ba42f3d1bdacee1a5f","spans":[{"traceID":"9118c026cdd270ba42f3d1bdacee1a5f","spanID":"457eea88b7cc7667","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056851059,"duration":262,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":48931},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"630b5de079516eadb159fa8f78b8e219","spans":[{"traceID":"630b5de079516eadb159fa8f78b8e219","spanID":"66ab07734f4f64ba","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056848657,"duration":1279,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":54309},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"27c89f0bedca520adf874fb5a2c9d7f4","spans":[{"traceID":"27c89f0bedca520adf874fb5a2c9d7f4","spanID":"573729a39e73dc4f","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056854861,"duration":147,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":54309},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"799f79cd49b704f5f2e5f3554c7363b4","spans":[{"traceID":"799f79cd49b704f5f2e5f3554c7363b4","spanID":"30ad3309f4efa977","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056870339,"duration":133,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":37666},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"2aabc888a78327f32180361421a364b4","spans":[{"traceID":"2aabc888a78327f32180361421a364b4","spanID":"94f22346a0b912ef","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056867409,"duration":126,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":54309},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"708b1c9ea00125c94a37efa748a30468","spans":[{"traceID":"708b1c9ea00125c94a37efa748a30468","spanID":"57dcfd42063ae58f","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056866680,"duration":163,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":55795},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"d01c16c65743ba56fbf966a76d0301b3","spans":[{"traceID":"d01c16c65743ba56fbf966a76d0301b3","spanID":"480d744ab8fac0cb","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056849026,"duration":1179,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":37666},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"14adb6d7daba2e38a19590831439dc47","spans":[{"traceID":"14adb6d7daba2e38a19590831439dc47","spanID":"85e79e704b2e6957","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056861491,"duration":143,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":37987},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null},{"traceID":"96b97e7893bc1450922619b0e638b782","spans":[{"traceID":"96b97e7893bc1450922619b0e638b782","spanID":"03e237919d09d5a6","operationName":"/api/metrics/latencies","references":[],"startTime":1762875056849577,"duration":672,"tags":[{"key":"client.address","type":"string","value":"192.168.65.1"},{"key":"error","type":"bool","value":true},{"key":"http.request.method","type":"string","value":"GET"},{"key":"http.response.body.size","type":"int64","value":116},{"key":"http.response.status_code","type":"int64","value":501},{"key":"http.route","type":"string","value":"/api/metrics/latencies"},{"key":"network.peer.address","type":"string","value":"192.168.65.1"},{"key":"network.peer.port","type":"int64","value":37987},{"key":"network.protocol.version","type":"string","value":"1.1"},{"key":"otel.scope.name","type":"string","value":"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"},{"key":"otel.scope.version","type":"string","value":"0.62.0"},{"key":"otel.status_code","type":"string","value":"ERROR"},{"key":"server.address","type":"string","value":"localhost"},{"key":"server.port","type":"int64","value":16686},{"key":"span.kind","type":"string","value":"server"},{"key":"url.path","type":"string","value":"/api/metrics/latencies"},{"key":"url.scheme","type":"string","value":"http"},{"key":"user_agent.original","type":"string","value":"Mozilla/5.0 + (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + Chrome/141.0.0.0 Safari/537.36"}],"logs":[],"processID":"p1","warnings":null}],"processes":{"p1":{"serviceName":"jaeger","tags":[{"key":"host.name","type":"string","value":"9e02ac46f7f5"},{"key":"os.type","type":"string","value":"linux"},{"key":"telemetry.sdk.language","type":"string","value":"go"},{"key":"telemetry.sdk.name","type":"string","value":"opentelemetry"},{"key":"telemetry.sdk.version","type":"string","value":"1.37.0"}]}},"warnings":null}],"total":0,"limit":0,"offset":0,"errors":null}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:21:09 GMT + Traceresponse: + - 00-45bffd1412587eae85778e41c3528b3d-0b2cc382622c2c72-01 + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_jaeger_integration/TestJaegerServiceOperations.test_get_service_operations.yaml b/tests/integration/cassettes/test_jaeger_integration/TestJaegerServiceOperations.test_get_service_operations.yaml new file mode 100644 index 0000000..baabe3b --- /dev/null +++ b/tests/integration/cassettes/test_jaeger_integration/TestJaegerServiceOperations.test_get_service_operations.yaml @@ -0,0 +1,62 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services + response: + body: + string: '{"data":["trace-analyzer-agent","model-comparison","jaeger","travel-agent-demo"],"total":4,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-cfdc176f3764b26957339bc03a2af19c-d0e1472d51618cbc-01 + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:16686 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:16686/api/services/trace-analyzer-agent/operations + response: + body: + string: '{"data":["openai.chat","tools/list.mcp","initialize.mcp","search_traces.tool"],"total":4,"limit":0,"offset":0,"errors":null}' + headers: + Content-Length: + - '124' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 13:02:18 GMT + Traceresponse: + - 00-1fc35582dd0d4177e3454a10deeb6299-374737f04c714489-01 + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoBackendHealth.test_health_check_healthy.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoBackendHealth.test_health_check_healthy.yaml new file mode 100644 index 0000000..cbd54c0 --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoBackendHealth.test_health_check_healthy.yaml @@ -0,0 +1,33 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B%7D&limit=1 + response: + body: + string: '{"traces":[{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}}],"metrics":{"inspectedBytes":"42386","completedJobs":1,"totalJobs":1}}' + headers: + Content-Length: + - '1006' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoGetTrace.test_get_trace_by_id.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoGetTrace.test_get_trace_by_id.yaml new file mode 100644 index 0000000..a60d8b3 --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoGetTrace.test_get_trace_by_id.yaml @@ -0,0 +1,239 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B%7D&limit=1 + response: + body: + string: '{"traces":[{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}}],"metrics":{"totalBlocks":2,"completedJobs":1,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Length: + - '1013' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/42ff472d7feb6215bec0cf4e350675b2 + response: + body: + string: '{"batches":[{"resource":{"attributes":[{"key":"telemetry.sdk.language","value":{"stringValue":"python"}},{"key":"telemetry.sdk.name","value":{"stringValue":"opentelemetry"}},{"key":"telemetry.sdk.version","value":{"stringValue":"1.38.0"}},{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},"scopeSpans":[{"scope":{"name":"opentelemetry.instrumentation.openai_agents","version":"0.47.5"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"NPzxuz+vo54=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187236891000","endTimeUnixNano":"1763042189460181000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"gen_ai.prompt.0.role","value":{"stringValue":"user"}},{"key":"gen_ai.prompt.0.content","value":{"stringValue":"I + want to visit New York for 7 days with a moderate budget. I love history. + Create me an itinerary."}},{"key":"llm.request.functions.0.name","value":{"stringValue":"search_destinations"}},{"key":"llm.request.functions.0.description","value":{"stringValue":"Search + for travel destinations by region or subregion using REST Countries API."}},{"key":"llm.request.functions.0.parameters","value":{"stringValue":"{\"properties\": + {\"region\": {\"default\": \"\", \"description\": \"Region to search (e.g., + \\\"Europe\\\", \\\"Asia\\\", \\\"Americas\\\")\", \"title\": \"Region\", + \"type\": \"string\"}, \"subregion\": {\"default\": \"\", \"description\": + \"Subregion to search (e.g., \\\"Southern Europe\\\", \\\"Southeast Asia\\\")\", + \"title\": \"Subregion\", \"type\": \"string\"}}, \"title\": \"search_destinations_args\", + \"type\": \"object\", \"additionalProperties\": false, \"required\": [\"region\", + \"subregion\"]}"}},{"key":"llm.request.functions.1.name","value":{"stringValue":"get_location_coordinates"}},{"key":"llm.request.functions.1.description","value":{"stringValue":"Get + coordinates for a location using Nominatim (OpenStreetMap) API."}},{"key":"llm.request.functions.1.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the city or location\", \"title\": + \"Location Name\", \"type\": \"string\"}}, \"required\": [\"location_name\"], + \"title\": \"get_location_coordinates_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.2.name","value":{"stringValue":"get_weather_forecast"}},{"key":"llm.request.functions.2.description","value":{"stringValue":"Get + current weather and 7-day forecast using Open-Meteo API (no API key required)."}},{"key":"llm.request.functions.2.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the location\", \"title\": + \"Location Name\", \"type\": \"string\"}, \"latitude\": {\"description\": + \"Latitude coordinate\", \"title\": \"Latitude\", \"type\": \"number\"}, \"longitude\": + {\"description\": \"Longitude coordinate\", \"title\": \"Longitude\", \"type\": + \"number\"}}, \"required\": [\"location_name\", \"latitude\", \"longitude\"], + \"title\": \"get_weather_forecast_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.3.name","value":{"stringValue":"get_destination_info"}},{"key":"llm.request.functions.3.description","value":{"stringValue":"Get + information about a destination from Wikipedia API."}},{"key":"llm.request.functions.3.parameters","value":{"stringValue":"{\"properties\": + {\"destination_name\": {\"description\": \"Name of the destination\", \"title\": + \"Destination Name\", \"type\": \"string\"}}, \"required\": [\"destination_name\"], + \"title\": \"get_destination_info_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.4.name","value":{"stringValue":"calculate_travel_distance"}},{"key":"llm.request.functions.4.description","value":{"stringValue":"Calculate + distance and estimated flight time between two locations.\nUses Haversine + formula for distance calculation."}},{"key":"llm.request.functions.4.parameters","value":{"stringValue":"{\"properties\": + {\"from_location\": {\"description\": \"Starting location name\", \"title\": + \"From Location\", \"type\": \"string\"}, \"to_location\": {\"description\": + \"Destination location name\", \"title\": \"To Location\", \"type\": \"string\"}, + \"from_lat\": {\"description\": \"Starting latitude\", \"title\": \"From Lat\", + \"type\": \"number\"}, \"from_lon\": {\"description\": \"Starting longitude\", + \"title\": \"From Lon\", \"type\": \"number\"}, \"to_lat\": {\"description\": + \"Destination latitude\", \"title\": \"To Lat\", \"type\": \"number\"}, \"to_lon\": + {\"description\": \"Destination longitude\", \"title\": \"To Lon\", \"type\": + \"number\"}}, \"required\": [\"from_location\", \"to_location\", \"from_lat\", + \"from_lon\", \"to_lat\", \"to_lon\"], \"title\": \"calculate_travel_distance_args\", + \"type\": \"object\", \"additionalProperties\": false}"}},{"key":"llm.request.functions.5.name","value":{"stringValue":"create_itinerary"}},{"key":"llm.request.functions.5.description","value":{"stringValue":"Create + a detailed day-by-day travel itinerary using AI."}},{"key":"llm.request.functions.5.parameters","value":{"stringValue":"{\"properties\": + {\"destination\": {\"description\": \"Main destination for the trip\", \"title\": + \"Destination\", \"type\": \"string\"}, \"duration_days\": {\"description\": + \"Number of days for the trip\", \"title\": \"Duration Days\", \"type\": \"integer\"}, + \"budget\": {\"description\": \"Budget level (budget, moderate, luxury)\", + \"title\": \"Budget\", \"type\": \"string\"}, \"interests\": {\"description\": + \"Traveler interests (e.g., food, history, nature)\", \"title\": \"Interests\", + \"type\": \"string\"}, \"weather_info\": {\"default\": \"\", \"description\": + \"Weather forecast information (optional)\", \"title\": \"Weather Info\", + \"type\": \"string\"}, \"destination_details\": {\"default\": \"\", \"description\": + \"Additional destination details (optional)\", \"title\": \"Destination Details\", + \"type\": \"string\"}}, \"required\": [\"destination\", \"duration_days\", + \"budget\", \"interests\", \"weather_info\", \"destination_details\"], \"title\": + \"create_itinerary_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"gen_ai.request.temperature","value":{"doubleValue":1}},{"key":"gen_ai.request.top_p","value":{"doubleValue":1}},{"key":"gen_ai.request.model","value":{"stringValue":"gpt-4o-2024-08-06"}},{"key":"gen_ai.completion.0.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.0.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.0.tool_calls.0.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.0.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\"}"}},{"key":"gen_ai.completion.0.tool_calls.0.id","value":{"stringValue":"call_M6Cz1ZtgBBRVhPAKwGhP4HkH"}},{"key":"gen_ai.completion.1.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.1.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.1.tool_calls.0.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.1.tool_calls.0.arguments","value":{"stringValue":"{\"destination_name\":\"New + York\"}"}},{"key":"gen_ai.completion.1.tool_calls.0.id","value":{"stringValue":"call_XjU0qIs2w9toMdl7I78qNPRd"}},{"key":"gen_ai.completion.2.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.2.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.2.tool_calls.0.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.2.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\",\"latitude\":40.7128,\"longitude\":-74.006}"}},{"key":"gen_ai.completion.2.tool_calls.0.id","value":{"stringValue":"call_vW1iVMpxm4W5VAjz3uvhFwxl"}},{"key":"gen_ai.usage.prompt_tokens","value":{"intValue":"313"}},{"key":"gen_ai.usage.completion_tokens","value":{"intValue":"81"}},{"key":"llm.usage.total_tokens","value":{"intValue":"394"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Jn+55BUIsg8=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042192790536000","endTimeUnixNano":"1763042197342144000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"qUtAVv3MWrg=","parentSpanId":"i9g02JupVjo=","name":"Travel + Planner Agent.agent","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187234430000","endTimeUnixNano":"1763042197342199000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"agent"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"i9g02JupVjo=","name":"Agent + Workflow","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187232503000","endTimeUnixNano":"1763042197342213000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"workflow"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.workflow.name","value":{"stringValue":"Agent + Workflow"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"ndtaGw2O47w=","parentSpanId":"qUtAVv3MWrg=","name":"get_destination_info.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461414000","endTimeUnixNano":"1763042192787831000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"lAvl8cSGCdQ=","parentSpanId":"qUtAVv3MWrg=","name":"get_weather_forecast.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461614000","endTimeUnixNano":"1763042192787979000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"DRPQ4fXYGOk=","parentSpanId":"qUtAVv3MWrg=","name":"get_location_coordinates.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461045000","endTimeUnixNano":"1763042192788272000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}}]},{"scope":{"name":"opentelemetry.instrumentation.requests","version":"0.59b0"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"gvjOX9XKnIQ=","parentSpanId":"ndtaGw2O47w=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042189966888000","endTimeUnixNano":"1763042190649032000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://en.wikipedia.org/api/rest_v1/page/summary/New%20York"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Vd7J6WeIkI0=","parentSpanId":"lAvl8cSGCdQ=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042190650755000","endTimeUnixNano":"1763042191744238000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://api.open-meteo.com/v1/forecast?latitude=40.7128\u0026longitude=-74.006\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\u0026timezone=auto\u0026forecast_days=7"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"QO7ZImsbB1g=","parentSpanId":"DRPQ4fXYGOk=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042191747300000","endTimeUnixNano":"1763042192786263000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://nominatim.openstreetmap.org/search?q=New+York\u0026format=json\u0026limit=1"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}}]}]}]}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '14143' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/42ff472d7feb6215bec0cf4e350675b2 + response: + body: + string: '{"batches":[{"resource":{"attributes":[{"key":"telemetry.sdk.language","value":{"stringValue":"python"}},{"key":"telemetry.sdk.name","value":{"stringValue":"opentelemetry"}},{"key":"telemetry.sdk.version","value":{"stringValue":"1.38.0"}},{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},"scopeSpans":[{"scope":{"name":"opentelemetry.instrumentation.openai_agents","version":"0.47.5"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"NPzxuz+vo54=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187236891000","endTimeUnixNano":"1763042189460181000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"gen_ai.prompt.0.role","value":{"stringValue":"user"}},{"key":"gen_ai.prompt.0.content","value":{"stringValue":"I + want to visit New York for 7 days with a moderate budget. I love history. + Create me an itinerary."}},{"key":"llm.request.functions.0.name","value":{"stringValue":"search_destinations"}},{"key":"llm.request.functions.0.description","value":{"stringValue":"Search + for travel destinations by region or subregion using REST Countries API."}},{"key":"llm.request.functions.0.parameters","value":{"stringValue":"{\"properties\": + {\"region\": {\"default\": \"\", \"description\": \"Region to search (e.g., + \\\"Europe\\\", \\\"Asia\\\", \\\"Americas\\\")\", \"title\": \"Region\", + \"type\": \"string\"}, \"subregion\": {\"default\": \"\", \"description\": + \"Subregion to search (e.g., \\\"Southern Europe\\\", \\\"Southeast Asia\\\")\", + \"title\": \"Subregion\", \"type\": \"string\"}}, \"title\": \"search_destinations_args\", + \"type\": \"object\", \"additionalProperties\": false, \"required\": [\"region\", + \"subregion\"]}"}},{"key":"llm.request.functions.1.name","value":{"stringValue":"get_location_coordinates"}},{"key":"llm.request.functions.1.description","value":{"stringValue":"Get + coordinates for a location using Nominatim (OpenStreetMap) API."}},{"key":"llm.request.functions.1.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the city or location\", \"title\": + \"Location Name\", \"type\": \"string\"}}, \"required\": [\"location_name\"], + \"title\": \"get_location_coordinates_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.2.name","value":{"stringValue":"get_weather_forecast"}},{"key":"llm.request.functions.2.description","value":{"stringValue":"Get + current weather and 7-day forecast using Open-Meteo API (no API key required)."}},{"key":"llm.request.functions.2.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the location\", \"title\": + \"Location Name\", \"type\": \"string\"}, \"latitude\": {\"description\": + \"Latitude coordinate\", \"title\": \"Latitude\", \"type\": \"number\"}, \"longitude\": + {\"description\": \"Longitude coordinate\", \"title\": \"Longitude\", \"type\": + \"number\"}}, \"required\": [\"location_name\", \"latitude\", \"longitude\"], + \"title\": \"get_weather_forecast_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.3.name","value":{"stringValue":"get_destination_info"}},{"key":"llm.request.functions.3.description","value":{"stringValue":"Get + information about a destination from Wikipedia API."}},{"key":"llm.request.functions.3.parameters","value":{"stringValue":"{\"properties\": + {\"destination_name\": {\"description\": \"Name of the destination\", \"title\": + \"Destination Name\", \"type\": \"string\"}}, \"required\": [\"destination_name\"], + \"title\": \"get_destination_info_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.4.name","value":{"stringValue":"calculate_travel_distance"}},{"key":"llm.request.functions.4.description","value":{"stringValue":"Calculate + distance and estimated flight time between two locations.\nUses Haversine + formula for distance calculation."}},{"key":"llm.request.functions.4.parameters","value":{"stringValue":"{\"properties\": + {\"from_location\": {\"description\": \"Starting location name\", \"title\": + \"From Location\", \"type\": \"string\"}, \"to_location\": {\"description\": + \"Destination location name\", \"title\": \"To Location\", \"type\": \"string\"}, + \"from_lat\": {\"description\": \"Starting latitude\", \"title\": \"From Lat\", + \"type\": \"number\"}, \"from_lon\": {\"description\": \"Starting longitude\", + \"title\": \"From Lon\", \"type\": \"number\"}, \"to_lat\": {\"description\": + \"Destination latitude\", \"title\": \"To Lat\", \"type\": \"number\"}, \"to_lon\": + {\"description\": \"Destination longitude\", \"title\": \"To Lon\", \"type\": + \"number\"}}, \"required\": [\"from_location\", \"to_location\", \"from_lat\", + \"from_lon\", \"to_lat\", \"to_lon\"], \"title\": \"calculate_travel_distance_args\", + \"type\": \"object\", \"additionalProperties\": false}"}},{"key":"llm.request.functions.5.name","value":{"stringValue":"create_itinerary"}},{"key":"llm.request.functions.5.description","value":{"stringValue":"Create + a detailed day-by-day travel itinerary using AI."}},{"key":"llm.request.functions.5.parameters","value":{"stringValue":"{\"properties\": + {\"destination\": {\"description\": \"Main destination for the trip\", \"title\": + \"Destination\", \"type\": \"string\"}, \"duration_days\": {\"description\": + \"Number of days for the trip\", \"title\": \"Duration Days\", \"type\": \"integer\"}, + \"budget\": {\"description\": \"Budget level (budget, moderate, luxury)\", + \"title\": \"Budget\", \"type\": \"string\"}, \"interests\": {\"description\": + \"Traveler interests (e.g., food, history, nature)\", \"title\": \"Interests\", + \"type\": \"string\"}, \"weather_info\": {\"default\": \"\", \"description\": + \"Weather forecast information (optional)\", \"title\": \"Weather Info\", + \"type\": \"string\"}, \"destination_details\": {\"default\": \"\", \"description\": + \"Additional destination details (optional)\", \"title\": \"Destination Details\", + \"type\": \"string\"}}, \"required\": [\"destination\", \"duration_days\", + \"budget\", \"interests\", \"weather_info\", \"destination_details\"], \"title\": + \"create_itinerary_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"gen_ai.request.temperature","value":{"doubleValue":1}},{"key":"gen_ai.request.top_p","value":{"doubleValue":1}},{"key":"gen_ai.request.model","value":{"stringValue":"gpt-4o-2024-08-06"}},{"key":"gen_ai.completion.0.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.0.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.0.tool_calls.0.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.0.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\"}"}},{"key":"gen_ai.completion.0.tool_calls.0.id","value":{"stringValue":"call_M6Cz1ZtgBBRVhPAKwGhP4HkH"}},{"key":"gen_ai.completion.1.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.1.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.1.tool_calls.0.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.1.tool_calls.0.arguments","value":{"stringValue":"{\"destination_name\":\"New + York\"}"}},{"key":"gen_ai.completion.1.tool_calls.0.id","value":{"stringValue":"call_XjU0qIs2w9toMdl7I78qNPRd"}},{"key":"gen_ai.completion.2.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.2.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.2.tool_calls.0.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.2.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\",\"latitude\":40.7128,\"longitude\":-74.006}"}},{"key":"gen_ai.completion.2.tool_calls.0.id","value":{"stringValue":"call_vW1iVMpxm4W5VAjz3uvhFwxl"}},{"key":"gen_ai.usage.prompt_tokens","value":{"intValue":"313"}},{"key":"gen_ai.usage.completion_tokens","value":{"intValue":"81"}},{"key":"llm.usage.total_tokens","value":{"intValue":"394"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Jn+55BUIsg8=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042192790536000","endTimeUnixNano":"1763042197342144000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"qUtAVv3MWrg=","parentSpanId":"i9g02JupVjo=","name":"Travel + Planner Agent.agent","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187234430000","endTimeUnixNano":"1763042197342199000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"agent"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"i9g02JupVjo=","name":"Agent + Workflow","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187232503000","endTimeUnixNano":"1763042197342213000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"workflow"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.workflow.name","value":{"stringValue":"Agent + Workflow"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"ndtaGw2O47w=","parentSpanId":"qUtAVv3MWrg=","name":"get_destination_info.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461414000","endTimeUnixNano":"1763042192787831000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"lAvl8cSGCdQ=","parentSpanId":"qUtAVv3MWrg=","name":"get_weather_forecast.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461614000","endTimeUnixNano":"1763042192787979000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"DRPQ4fXYGOk=","parentSpanId":"qUtAVv3MWrg=","name":"get_location_coordinates.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461045000","endTimeUnixNano":"1763042192788272000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}}]},{"scope":{"name":"opentelemetry.instrumentation.requests","version":"0.59b0"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"gvjOX9XKnIQ=","parentSpanId":"ndtaGw2O47w=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042189966888000","endTimeUnixNano":"1763042190649032000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://en.wikipedia.org/api/rest_v1/page/summary/New%20York"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Vd7J6WeIkI0=","parentSpanId":"lAvl8cSGCdQ=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042190650755000","endTimeUnixNano":"1763042191744238000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://api.open-meteo.com/v1/forecast?latitude=40.7128\u0026longitude=-74.006\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\u0026timezone=auto\u0026forecast_days=7"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"QO7ZImsbB1g=","parentSpanId":"DRPQ4fXYGOk=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042191747300000","endTimeUnixNano":"1763042192786263000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://nominatim.openstreetmap.org/search?q=New+York\u0026format=json\u0026limit=1"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}}]}]}]}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '14143' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoGetTrace.test_get_trace_invalid_id.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoGetTrace.test_get_trace_invalid_id.yaml new file mode 100644 index 0000000..14b3b8c --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoGetTrace.test_get_trace_invalid_id.yaml @@ -0,0 +1,30 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/00000000000000000000000000000000 + response: + body: + string: '' + headers: + Content-Length: + - '0' + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Vary: + - Accept-Encoding + status: + code: 404 + message: Not Found +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoLLMSpans.test_search_llm_spans.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoLLMSpans.test_search_llm_spans.yaml new file mode 100644 index 0000000..a0d5dd7 --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoLLMSpans.test_search_llm_spans.yaml @@ -0,0 +1,5248 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B%7D&limit=40 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}},{"traceID":"b37b4c7727a54482f8c71cb88799c108","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042214208334000","durationMs":74124,"spanSet":{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18},"spanSets":[{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18}],"serviceStats":{"travel-agent-demo2":{"spanCount":18}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"43192","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Vary: + - Accept-Encoding + content-length: + - '6560' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/bec9c8df1c3a22a134e4c9c7aa0f0ce3 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"htO31/xjQN0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458122243000\",\"endTimeUnixNano\":\"1763042536895402000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"0hFkYEm0pAA=\",\"parentSpanId\":\"htO31/xjQN0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458123662000\",\"endTimeUnixNano\":\"1763042536895316000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"FSS1aMtuo4g=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042521888311000\",\"endTimeUnixNano\":\"1763042536893685000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4ab7f848195ada04713bd68e3dc\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Exploring + the Wonders of New Zealand', destination='New Zealand', duration_days=7, total_budget_estimate='$1,500', + daily_plans=[DayPlan(day_number=1, date='2023-10-01', title='Arrival in Auckland', + activities=[DayActivity(time='09:00 AM', activity='Arrive at Auckland Airport', + location='Auckland Airport', notes='Collect your rental car for the week.'), + DayActivity(time='10:00 AM', activity='Check into Accommodation', location='SkyCity + Hotel', notes='Located in the city center, convenient for exploring.'), DayActivity(time='11:30 + AM', activity='Visit Auckland War Memorial Museum', location='Auckland Domain', + notes='Explore New Zealand\u2019s cultural heritage and natural history.'), + DayActivity(time='02:00 PM', activity='Lunch at Tom Tom Bar \\u0026 Eatery', + location='SkyCity', notes='Enjoy a relaxing meal with views of the city.'), + DayActivity(time='03:30 PM', activity='Walk around Viaduct Harbour', location='Viaduct + Harbour', notes='Stroll along the waterfront and enjoy the vibrant atmosphere.'), + DayActivity(time='06:30 PM', activity='Dinner at Depot Eatery', location='Federal + Street, Auckland', notes='Experience local New Zealand cuisine.')], meals=['Lunch + at Tom Tom Bar \\u0026 Eatery', 'Dinner at Depot Eatery'], accommodation='SkyCity + Hotel, Auckland'), DayPlan(day_number=2, date='2023-10-02', title='Exploring + the Bay of Islands', activities=[DayActivity(time='07:00 AM', activity='Drive + to Bay of Islands', location='Bay of Islands', notes='Approx. 3 hours drive, + enjoy scenic views on the way.'), DayActivity(time='10:30 AM', activity='Take + a Bay of Islands Cruise', location='Paihia Wharf', notes='Explore the stunning + islands and spot marine wildlife.'), DayActivity(time='01:00 PM', activity='Lunch + at The Gables Restaurant', location='Russell', notes='Try fresh seafood and + local dishes.'), DayActivity(time='03:00 PM', activity='Visit Waitangi Treaty + Grounds', location='Waitangi', notes=\\\"Learn about New Zealand's history + an\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for a romantic cultural vacation in New Zealand, + tailored to your interests:\\n\\n### Exploring the Wonders of New Zealand\\n\\n#### + **Day 1: Arrival in Auckland**\\n- **Morning**\\n - Arrive at Auckland Airport\\n + \ - Check into SkyCity Hotel, centrally located for easy exploration.\\n- + **Afternoon**\\n - Visit Auckland War Memorial Museum: Delve into New Zealand\u2019s + cultural heritage.\\n - Lunch at Tom Tom Bar \\u0026 Eatery: Enjoy city views.\\n- + **Evening**\\n - Walk around Viaduct Harbour: Vibrant waterfront stroll.\\n + \ - Dinner at Depot Eatery: Experience local cuisine.\\n\\n#### **Day 2: Exploring + the Bay of Islands**\\n- **Morning**\\n - Drive to Bay of Islands: Scenic + 3-hour journey.\\n - Take a Bay of Islands Cruise: Explore islands and marine + wildlife.\\n- **Afternoon**\\n - Lunch at The Gables Restaurant: Fresh local + seafood.\\n - Visit Waitangi Treaty Grounds: Learn about New Zealand's history.\\n- + **Evening**\\n - Return to Auckland.\\n - Dinner at The Glasshouse.\\n\\n#### + **Day 3: Wellington - The Capital**\\n- **Morning**\\n - Drive to Wellington: + Enjoy the scenic route.\\n- **Afternoon**\\n - Lunch at The Boatshed Cafe.\\n + \ - Visit Te Papa Tongarewa (Museum of New Zealand): Explore national history.\\n- + **Evening**\\n - Cable Car Ride to Kelburn: City views.\\n - Dinner at Logan + Brown: Fine dining.\\n\\n#### **Day 4: Nature and Culture in Wellington**\\n- + **Morning**\\n - Wellington Botanic Garden: Peaceful morning walk.\\n - + Explore Zealandia Ecosanctuary: Discover unique wildlife.\\n- **Afternoon**\\n + \ - Lunch at The Ramen Shop.\\n - Visit the National Portrait Gallery.\\n- + **Evening**\\n - Dinner at The Old Bailey.\\n\\n#### **Day 5: Travel to Queenstown**\\n- + **Early Morning**\\n - Fly from Wellington to Queenstown.\\n- **Morning**\\n + \ - Check into Center City Apartments.\\n - Skyline Gondola Ride: Panoramic + views.\\n- **Afternoon**\\n - Lunch at Stratosfare Restaurant: Mountain views.\\n + \ - Explore Queenstown Gardens.\\n- **Evening**\\n - Jet Boating on Lake + Wakatipu.\\n - Dinner at Fergburger.\\n\\n#### **Day 6: Adventure in Queenstown**\\n- + **Morning**\\n - \"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4669\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"694\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5363\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]}]},{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"SZQWdqnT86M=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458125576000\",\"endTimeUnixNano\":\"1763042460061974000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"933\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"956\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"LhJKSMoSSOA=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042460062781000\",\"endTimeUnixNano\":\"1763042461638134000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"j4A8EPQuGCg=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042461639066000\",\"endTimeUnixNano\":\"1763042463839211000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"800\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"850\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ULgV+UrP/qI=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463839867000\",\"endTimeUnixNano\":\"1763042466936364000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"rU40hFuwoTM=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463840073000\",\"endTimeUnixNano\":\"1763042466936520000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"t17Kam4h9+E=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466938646000\",\"endTimeUnixNano\":\"1763042470405151000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.completion.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.3.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"437\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"116\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"553\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"7g4u8KYJLAU=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406246000\",\"endTimeUnixNano\":\"1763042474022207000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"yCwOkiG7rZ4=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406582000\",\"endTimeUnixNano\":\"1763042474022257000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"suvbAlwFQxE=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406864000\",\"endTimeUnixNano\":\"1763042474022284000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"kK2HJo7iF1s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470407130000\",\"endTimeUnixNano\":\"1763042474022309000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"hqoFE9rpZHw=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042474023255000\",\"endTimeUnixNano\":\"1763042479037529000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2709\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"3q+1aP5st6s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042479037941000\",\"endTimeUnixNano\":\"1763042521886451000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xp8+s75qaoQ=\",\"parentSpanId\":\"LhJKSMoSSOA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042460566475000\",\"endTimeUnixNano\":\"1763042461631027000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xTNGMbJ8o4w=\",\"parentSpanId\":\"ULgV+UrP/qI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042464944178000\",\"endTimeUnixNano\":\"1763042466058265000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"cp8E6e04/1g=\",\"parentSpanId\":\"rU40hFuwoTM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466061655000\",\"endTimeUnixNano\":\"1763042466934165000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"vHsnrxC0dGw=\",\"parentSpanId\":\"7g4u8KYJLAU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042470916507000\",\"endTimeUnixNano\":\"1763042471857859000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"wieBZmgqMfE=\",\"parentSpanId\":\"yCwOkiG7rZ4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042471863066000\",\"endTimeUnixNano\":\"1763042472795187000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"KvPdWQGWzrM=\",\"parentSpanId\":\"suvbAlwFQxE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042472796856000\",\"endTimeUnixNano\":\"1763042473492982000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"YDcPBs0N6BQ=\",\"parentSpanId\":\"kK2HJo7iF1s=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042473499558000\",\"endTimeUnixNano\":\"1763042474021224000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Australia\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ZxRbtS6dkJI=\",\"parentSpanId\":\"3q+1aP5st6s=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042479555737000\",\"endTimeUnixNano\":\"1763042521884511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: culture, nature\\n- Weather: Current temperature is 7.5\xB0C and + overcast. Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected + on certain days.\\n- Destination Info: New Zealand is an island country in + the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the moderate budget level and culture, + nature interests.\\nEach day should have 3-5 activities with specific times, + locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbSAyeprdNroIr4yr884B5SquCIU0\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2320\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1726\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"594\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Exploring + the Wonders of New Zealand\\\",\\\"destination\\\":\\\"New Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + your rental car for the week.\\\"},{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into Accommodation\\\",\\\"location\\\":\\\"SkyCity Hotel\\\",\\\"notes\\\":\\\"Located + in the city center, convenient for exploring.\\\"},{\\\"time\\\":\\\"11:30 + AM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Auckland + Domain\\\",\\\"notes\\\":\\\"Explore New Zealand\u2019s cultural heritage + and natural history.\\\"},{\\\"time\\\":\\\"02:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"SkyCity\\\",\\\"notes\\\":\\\"Enjoy + a relaxing meal with views of the city.\\\"},{\\\"time\\\":\\\"03:30 PM\\\",\\\"activity\\\":\\\"Walk + around Viaduct Harbour\\\",\\\"location\\\":\\\"Viaduct Harbour\\\",\\\"notes\\\":\\\"Stroll + along the waterfront and enjoy the vibrant atmosphere.\\\"},{\\\"time\\\":\\\"06:30 + PM\\\",\\\"activity\\\":\\\"Dinner at Depot Eatery\\\",\\\"location\\\":\\\"Federal + Street, Auckland\\\",\\\"notes\\\":\\\"Experience local New Zealand cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"Dinner at Depot Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + the Bay of Islands\\\",\\\"activities\\\":[{\\\"time\\\":\\\"07:00 AM\\\",\\\"activity\\\":\\\"Drive + to Bay of Islands\\\",\\\"location\\\":\\\"Bay of Islands\\\",\\\"notes\\\":\\\"Approx. + 3 hours drive, enjoy scenic views on the way.\\\"},{\\\"time\\\":\\\"10:30 + AM\\\",\\\"activity\\\":\\\"Take a Bay of Islands Cruise\\\",\\\"location\\\":\\\"Paihia + Wharf\\\",\\\"notes\\\":\\\"Explore the stunning islands and spot marine wildlife.\\\"},{\\\"time\\\":\\\"01:00 + PM\\\",\\\"activity\\\":\\\"Lunch at The Gables Restaurant\\\",\\\"location\\\":\\\"Russell\\\",\\\"notes\\\":\\\"Try + fresh seafood and local dishes.\\\"},{\\\"time\\\":\\\"03:00 PM\\\",\\\"activity\\\":\\\"Visit + Waitangi Treaty Grounds\\\",\\\"location\\\":\\\"Waitangi\\\",\\\"notes\\\":\\\"Learn + about New Zealand's history and culture.\\\"},{\\\"time\\\":\\\"05:30 PM\\\",\\\"activity\\\":\\\"Return + to Auckland\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Relax + in the car or stop for coffee on the way.\\\"},{\\\"time\\\":\\\"07:3\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '89149' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/6ce0a0129015a826c7f54b78275cfe37 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"QM3dFI3l52g=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290335056000\",\"endTimeUnixNano\":\"1763042456116415000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"3iOop76o3Sw=\",\"parentSpanId\":\"QM3dFI3l52g=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290336958000\",\"endTimeUnixNano\":\"1763042456116320000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"BGNWa2Lx+H4=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290337931000\",\"endTimeUnixNano\":\"1763042291996182000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"58\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"523\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bpkI8o2juJI=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042291997852000\",\"endTimeUnixNano\":\"1763042294883864000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"FWUQD7dWK24=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042291998533000\",\"endTimeUnixNano\":\"1763042294884045000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"JxMUY8xtBSU=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042294885529000\",\"endTimeUnixNano\":\"1763042317534957000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"For + an adventurous trip, I've selected two destinations known for thrilling experiences: + **Chile** in South America and **Tajikistan** in Central Asia. Let's explore + these destinations further to plan your exciting itinerary.\\n\\n### Chile\\n- + **Capital**: Santiago\\n- **Language**: Spanish\\n- **Currency**: Chilean + Peso (CLP)\\n- **Time Zone**: UTC-06:00 to UTC-04:00\\n\\n### Tajikistan\\n- + **Capital**: Dushanbe\\n- **Language**: Tajik, Russian\\n- **Currency**: Tajikistani + Somoni (TJS)\\n- **Time Zone**: UTC+05:00\\n\\nI'll gather the weather information + and then craft a detailed itinerary for you.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"945\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"213\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1158\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"OnwfJc+G7eA=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042317535695000\",\"endTimeUnixNano\":\"1763042321467468000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"zVBafqJLSVU=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042317535898000\",\"endTimeUnixNano\":\"1763042321467528000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"t+rxwgGXbbg=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042321470042000\",\"endTimeUnixNano\":\"1763042324279616000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1194\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"92\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1286\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"cOiJesC5V+c=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042324280282000\",\"endTimeUnixNano\":\"1763042326821781000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"VHh495GUkl0=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042324280617000\",\"endTimeUnixNano\":\"1763042326822084000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"QcXOYcnb1as=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042326824312000\",\"endTimeUnixNano\":\"1763042328899504000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1518\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"58\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1576\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"q9X9jhj0kbo=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042328900052000\",\"endTimeUnixNano\":\"1763042332069522000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bKmi3eZoF9E=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042328900188000\",\"endTimeUnixNano\":\"1763042332069569000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"pQWL2XkRjNE=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042332070368000\",\"endTimeUnixNano\":\"1763042337546943000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418af3c8190b5314c9f212bff34\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418cdf8819087ab8a397842e1ba\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Santiago, Chile' info=DestinationInfo(title='Santiago', + summary='Capital and largest city of Chile', extract=\\\"Santiago, also known + as Santiago de Chile, is the capital and largest city of Chile and one of + the largest cities in the Americas. Located in the Chilean Central Valley, + it anchors its namesake Santiago Metropolitan Region representing 40% of Chile's + total population. Most of the city is situated between 500\u2013650\\\\xa0m + (1,640\u20132,133\\\\xa0ft) above sea level.\\\")\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.17.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Dushanbe, Tajikistan' info=DestinationInfo(title='Dushanbe', + summary='Capital and largest city of Tajikistan', extract='Dushanbe is the + capital and largest city of Tajikistan. As of February\\\\xa02023, Dushanbe + had a population of 1,228,400, with this population being largely Tajik. Until + 1929, the city was known in Russian as Dyushambe, and from 1929 to 1961 as + Stalinabad, after Joseph Stalin. Dushanbe is located in the Gissar Valley, + bounded by the Gissar Range in the north and east and the Babatag, Aktau, + Rangontau and Karatau mountains in the south, and has an elevation of 750\u2013930 + m. The city is divided into four districts: Ismail Samani, Avicenna, Ferdowsi, + and Shah Mansur.')\"}},{\"key\":\"gen_ai.prompt.17.tool_call_id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Santiago, + Chile\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 24\xB0C with partly cloudy conditions. Upcoming days will be + mostly clear with temperatures ranging from 26\xB0C to 34\xB0C.\\\",\\\"destination_details\\\":\\\"Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_VD4AdDcXmJyed5FWcjWG7Ikt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\\",\\\"destination_details\\\":\\\"Dushanbe + is the capital and largest city of Tajikistan. It is located in the Gissar + Valley, bounded by mountainous terrains, and has a population of over 1 million + people.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_lid7TRD6rOxaEhIq6ISjqGG2\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1702\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"288\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1990\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"/iqJRoiO3Hs=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042337548317000\",\"endTimeUnixNano\":\"1763042433336198000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"dQSecaXxjXM=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042337548704000\",\"endTimeUnixNano\":\"1763042433336329000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"Gic8k6ZyUjM=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042433338440000\",\"endTimeUnixNano\":\"1763042456109947000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418af3c8190b5314c9f212bff34\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418cdf8819087ab8a397842e1ba\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Santiago, Chile' info=DestinationInfo(title='Santiago', + summary='Capital and largest city of Chile', extract=\\\"Santiago, also known + as Santiago de Chile, is the capital and largest city of Chile and one of + the largest cities in the Americas. Located in the Chilean Central Valley, + it anchors its namesake Santiago Metropolitan Region representing 40% of Chile's + total population. Most of the city is situated between 500\u2013650\\\\xa0m + (1,640\u20132,133\\\\xa0ft) above sea level.\\\")\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.17.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Dushanbe, Tajikistan' info=DestinationInfo(title='Dushanbe', + summary='Capital and largest city of Tajikistan', extract='Dushanbe is the + capital and largest city of Tajikistan. As of February\\\\xa02023, Dushanbe + had a population of 1,228,400, with this population being largely Tajik. Until + 1929, the city was known in Russian as Dyushambe, and from 1929 to 1961 as + Stalinabad, after Joseph Stalin. Dushanbe is located in the Gissar Valley, + bounded by the Gissar Range in the north and east and the Babatag, Aktau, + Rangontau and Karatau mountains in the south, and has an elevation of 750\u2013930 + m. The city is divided into four districts: Ismail Samani, Avicenna, Ferdowsi, + and Shah Mansur.')\"}},{\"key\":\"gen_ai.prompt.17.tool_call_id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e41d98b08190a0e7d230b49ad8ac\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Santiago, + Chile\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 24\xB0C with partly cloudy conditions. Upcoming days will be + mostly clear with temperatures ranging from 26\xB0C to 34\xB0C.\\\",\\\"destination_details\\\":\\\"Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e41fb6448190bca146180572c7a7\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\\",\\\"destination_details\\\":\\\"Dushanbe + is the capital and largest city of Tajikistan. It is located in the Gissar + Valley, bounded by mountainous terrains, and has a population of over 1 million + people.\\\"}\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Santiago, Chile' itinerary=TravelItinerary(trip_title='Adventurous + Santiago: A 7-Day Exploration', destination='Santiago, Chile', duration_days=7, + total_budget_estimate='$800-$1000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Santiago', activities=[DayActivity(time='10:00 AM', activity='Arrive + at Santiago International Airport', location='Santiago International Airport', + notes='Pick up rental car or take a taxi to the accommodation.'), DayActivity(time='11:30 + AM', activity='Check-in to accommodation', location='Hotel Plaza El Bosque', + notes='Moderate budget, centrally located.'), DayActivity(time='1:00 PM', + activity='Lunch at Liguria', location='Liguria Restaurant', notes='Try the + local seafood dishes.'), DayActivity(time='3:00 PM', activity='Walk around + Plaza de Armas', location='Plaza de Armas', notes='Explore the historic heart + of Santiago.'), DayActivity(time='5:00 PM', activity='Visit Cerro Santa Lucia', + location='Cerro Santa Lucia', notes='Enjoy panoramic views of the city.')], + meals=['Lunch at Liguria', 'Dinner at La Piojera'], accommodation='Hotel Plaza + El Bosque'), DayPlan(day_number=2, date='2023-10-02', title='Cajon del Maipo + Adventure', activities=[DayActivity(time='8:00 AM', activity='Breakfast at + the hotel', location='Hotel Plaza El Bosque', notes='Enjoy a hearty breakfast.'), + DayActivity(time='9:00 AM', activity='Depart for Cajon del Maipo', location='Cajon + del Maipo', notes='A beautiful area for outdoor activities.'), DayActivity(time='10:30 + AM', activity='Hiking in the El Morado National Monument', location='El Morado', + notes='Moderate hike with stunning views.'), DayActivity(time='1:00 PM', activity='Picnic + lunch in nature', location='El Morado', notes='Pack a lunch to enjoy in the + outdoors.'), DayActivity(time='3:00 PM', activity='Visit Embalse El Yeso', + location='Embalse El Yeso', notes='Take photos and enjoy the scenery.'), DayActivity(time='5:00 + PM', activity='Return to Santiago', location='Santiago', notes='R\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_VD4AdDcXmJyed5FWcjWG7Ikt\"}},{\"key\":\"gen_ai.prompt.21.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.21.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Dushanbe, Tajikistan' itinerary=TravelItinerary(trip_title='Adventure + Awaits in Dushanbe', destination='Dushanbe, Tajikistan', duration_days=7, + total_budget_estimate='$700', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and City Exploration', activities=[DayActivity(time='09:00 + AM', activity='Arrive in Dushanbe', location='Dushanbe International Airport', + notes='Transfer to hotel via taxi or arranged pickup.'), DayActivity(time='10:30 + AM', activity='Check-in and freshen up', location='Hotel Atlas Dushanbe', + notes='Moderate hotel with good reviews.'), DayActivity(time='12:00 PM', activity='Lunch + at Restaurant Shodlik', location='Shodlik Restaurant', notes='Try local dishes + like Plov and Shashlik.'), DayActivity(time='01:30 PM', activity='Visit the + National Museum of Tajikistan', location='Dushanbe', notes='Explore Tajik + history and culture.'), DayActivity(time='03:30 PM', activity='Walk around + Rudaki Park', location='Rudaki Park', notes='Enjoy the greenery and relax.'), + DayActivity(time='06:00 PM', activity='Dinner at Restaurant Dushanbe', location='Restaurant + Dushanbe', notes='Known for traditional Tajik cuisine.')], meals=['Lunch at + Shodlik', 'Dinner at Restaurant Dushanbe'], accommodation='Hotel Atlas Dushanbe'), + DayPlan(day_number=2, date='2023-10-02', title='Adventure in the Mountains', + activities=[DayActivity(time='08:00 AM', activity='Breakfast at the hotel', + location='Hotel Atlas Dushanbe', notes='Start your day with a hearty breakfast.'), + DayActivity(time='09:00 AM', activity='Day trip to Fann Mountains', location='Fann + Mountains', notes='Hire a local guide for an adventure hike.'), DayActivity(time='12:30 + PM', activity='Picnic lunch at Alaudin Lakes', location='Alaudin Lakes', notes='Pack + lunch from the hotel.'), DayActivity(time='02:00 PM', activity='Hiking around + the lakes', location='Alaudin Lakes', notes='Enjoy stunning views and take + photos.'), DayActivity(time='05:00 PM', activity='Return to Dushanbe', location='Dushanbe',\"}},{\"key\":\"gen_ai.prompt.21.tool_call_id\",\"value\":{\"stringValue\":\"call_lid7TRD6rOxaEhIq6ISjqGG2\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are two thrilling itineraries tailor-made for your adventurous spirit. You + can choose between Santiago, Chile, known for its vibrant city life and stunning + natural landscapes, or Dushanbe, Tajikistan, offering untouched natural beauty + and rich cultural experiences.\\n\\n### Santiago, Chile: Adventurous Exploration + (7 Days)\\n**Highlights:**\\n- Explore vibrant city life in Santiago, including + cultural sites like Plaza de Armas and Cerro Santa Lucia.\\n- Experience the + thrill of hiking in Cajon del Maipo and El Morado National Monument.\\n- Enjoy + a day trip to colorful Valparaiso.\\n- Taste Chilean wines on a Maipo Valley + wine tour.\\n- Adventure in the Andes Mountains with skiing or hiking.\\n\\n**Estimated + Budget:** $800-$1000\\n\\n**Travel Tips:** Learn some basic Spanish phrases, + and always carry water for outdoor activities.\\n\\n**Packing Suggestions:** + Lightweight clothing, comfortable hiking shoes, and sun protection.\\n\\n### + Dushanbe, Tajikistan: Adventure in Nature (7 Days)\\n**Highlights:**\\n- Discover + Dushanbe's cultural sites, including the National Museum and Rudaki Park.\\n- + Embark on an adventurous day in the Fann Mountains with hiking and exploring + the Alaudin Lakes.\\n- Enjoy rafting and hiking in Varzob Valley.\\n- Trek + in the majestic Pamir Mountains to Lake Sarez.\\n\\n**Estimated Budget:** + $700\\n\\n**Travel Tips:** Learn basic Tajik phrases, carry cash, and respect + local traditions.\\n\\n**Packing Suggestions:** Lightweight, layered clothing, + comfortable hiking shoes, and sunscreen.\\n\\nBoth itineraries promise adventure + and memorable experiences. Let me know if you have any preferences or need + further assistance!\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"7540\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"333\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7873\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"flp6zhR87z8=\",\"parentSpanId\":\"bpkI8o2juJI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042292502514000\",\"endTimeUnixNano\":\"1763042293711707000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Asia\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"8pVEfcKzjl0=\",\"parentSpanId\":\"FWUQD7dWK24=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042293718002000\",\"endTimeUnixNano\":\"1763042294872800000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"r7fWWieyOBU=\",\"parentSpanId\":\"OnwfJc+G7eA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042318640277000\",\"endTimeUnixNano\":\"1763042320464533000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Santiago%2C+Chile\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"HtDo/cYr/Zg=\",\"parentSpanId\":\"zVBafqJLSVU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042320470625000\",\"endTimeUnixNano\":\"1763042321464327000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Dushanbe%2C+Tajikistan\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"Vk5JbW85DaI=\",\"parentSpanId\":\"cOiJesC5V+c=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042324782420000\",\"endTimeUnixNano\":\"1763042325888098000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-33.4377756\\u0026longitude=-70.6504502\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bvgm7G6N5UQ=\",\"parentSpanId\":\"VHh495GUkl0=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042325892104000\",\"endTimeUnixNano\":\"1763042326819385000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=38.5856814\\u0026longitude=68.760331\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"k4ESLnjIntM=\",\"parentSpanId\":\"q9X9jhj0kbo=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042329402505000\",\"endTimeUnixNano\":\"1763042329932028000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Santiago,%20Chile\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"OPn/NLRb7OU=\",\"parentSpanId\":\"bKmi3eZoF9E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042329932776000\",\"endTimeUnixNano\":\"1763042332067863000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Dushanbe,%20Tajikistan\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"7BjV1KWqCGg=\",\"parentSpanId\":\"/iqJRoiO3Hs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042338068561000\",\"endTimeUnixNano\":\"1763042378358074000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Santiago, + Chile.\\n\\nTrip Details:\\n- Destination: Santiago, Chile\\n- Duration: 7 + days\\n- Budget: moderate\\n- Interests: adventure\\n- Weather: Current temperature + is 24\xB0C with partly cloudy conditions. Upcoming days will be mostly clear + with temperatures ranging from 26\xB0C to 34\xB0C.\\n- Destination Info: Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and adventure interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS8gIwmKuNXg8IbIbSADLWloOWdb\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2336\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1737\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"599\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Adventurous + Santiago: A 7-Day Exploration\\\",\\\"destination\\\":\\\"Santiago, Chile\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$800-$1000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Santiago\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Santiago International Airport\\\",\\\"location\\\":\\\"Santiago International + Airport\\\",\\\"notes\\\":\\\"Pick up rental car or take a taxi to the accommodation.\\\"},{\\\"time\\\":\\\"11:30 + AM\\\",\\\"activity\\\":\\\"Check-in to accommodation\\\",\\\"location\\\":\\\"Hotel + Plaza El Bosque\\\",\\\"notes\\\":\\\"Moderate budget, centrally located.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Liguria\\\",\\\"location\\\":\\\"Liguria + Restaurant\\\",\\\"notes\\\":\\\"Try the local seafood dishes.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Walk around Plaza de Armas\\\",\\\"location\\\":\\\"Plaza + de Armas\\\",\\\"notes\\\":\\\"Explore the historic heart of Santiago.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Visit Cerro Santa Lucia\\\",\\\"location\\\":\\\"Cerro + Santa Lucia\\\",\\\"notes\\\":\\\"Enjoy panoramic views of the city.\\\"}],\\\"meals\\\":[\\\"Lunch + at Liguria\\\",\\\"Dinner at La Piojera\\\"],\\\"accommodation\\\":\\\"Hotel + Plaza El Bosque\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Cajon + del Maipo Adventure\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Hotel Plaza El Bosque\\\",\\\"notes\\\":\\\"Enjoy + a hearty breakfast.\\\"},{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Depart + for Cajon del Maipo\\\",\\\"location\\\":\\\"Cajon del Maipo\\\",\\\"notes\\\":\\\"A + beautiful area for outdoor activities.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Hiking + in the El Morado National Monument\\\",\\\"location\\\":\\\"El Morado\\\",\\\"notes\\\":\\\"Moderate + hike with stunning views.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Picnic + lunch in nature\\\",\\\"location\\\":\\\"El Morado\\\",\\\"notes\\\":\\\"Pack + a lunch to enjoy in the outdoors.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + Embalse El Yeso\\\",\\\"location\\\":\\\"Embalse El Yeso\\\",\\\"notes\\\":\\\"Take + photos and enjoy the scenery.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to Santiago\\\",\\\"location\\\":\\\"Santiago\\\",\\\"notes\\\":\\\"Relax + after a day of adventure.\\\"}],\\\"meals\\\":[\\\"Breakfast at the hotel\\\",\\\"Picnic + lunch\\\",\\\"Dinner at Los Buenos Muchachos\\\"],\\\"accommodation\\\":\\\"Hotel + Plaza El Bosque\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"cioloVIWits=\",\"parentSpanId\":\"dQSecaXxjXM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042378370827000\",\"endTimeUnixNano\":\"1763042433334128000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Dushanbe, + Tajikistan.\\n\\nTrip Details:\\n- Destination: Dushanbe, Tajikistan\\n- Duration: + 7 days\\n- Budget: moderate\\n- Interests: adventure\\n- Weather: Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\n- + Destination Info: Dushanbe is the capital and largest city of Tajikistan. + It is located in the Gissar Valley, bounded by mountainous terrains, and has + a population of over 1 million people.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and adventure interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS9Lz3AjDms2dEht5anB36agIYPs\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2499\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1923\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"576\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Adventure + Awaits in Dushanbe\\\",\\\"destination\\\":\\\"Dushanbe, Tajikistan\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$700\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and City Exploration\\\",\\\"activities\\\":[{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Dushanbe\\\",\\\"location\\\":\\\"Dushanbe International Airport\\\",\\\"notes\\\":\\\"Transfer + to hotel via taxi or arranged pickup.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Check-in + and freshen up\\\",\\\"location\\\":\\\"Hotel Atlas Dushanbe\\\",\\\"notes\\\":\\\"Moderate + hotel with good reviews.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Restaurant Shodlik\\\",\\\"location\\\":\\\"Shodlik Restaurant\\\",\\\"notes\\\":\\\"Try + local dishes like Plov and Shashlik.\\\"},{\\\"time\\\":\\\"01:30 PM\\\",\\\"activity\\\":\\\"Visit + the National Museum of Tajikistan\\\",\\\"location\\\":\\\"Dushanbe\\\",\\\"notes\\\":\\\"Explore + Tajik history and culture.\\\"},{\\\"time\\\":\\\"03:30 PM\\\",\\\"activity\\\":\\\"Walk + around Rudaki Park\\\",\\\"location\\\":\\\"Rudaki Park\\\",\\\"notes\\\":\\\"Enjoy + the greenery and relax.\\\"},{\\\"time\\\":\\\"06:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Restaurant Dushanbe\\\",\\\"location\\\":\\\"Restaurant Dushanbe\\\",\\\"notes\\\":\\\"Known + for traditional Tajik cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Shodlik\\\",\\\"Dinner + at Restaurant Dushanbe\\\"],\\\"accommodation\\\":\\\"Hotel Atlas Dushanbe\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Adventure + in the Mountains\\\",\\\"activities\\\":[{\\\"time\\\":\\\"08:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Hotel Atlas Dushanbe\\\",\\\"notes\\\":\\\"Start + your day with a hearty breakfast.\\\"},{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Day + trip to Fann Mountains\\\",\\\"location\\\":\\\"Fann Mountains\\\",\\\"notes\\\":\\\"Hire + a local guide for an adventure hike.\\\"},{\\\"time\\\":\\\"12:30 PM\\\",\\\"activity\\\":\\\"Picnic + lunch at Alaudin Lakes\\\",\\\"location\\\":\\\"Alaudin Lakes\\\",\\\"notes\\\":\\\"Pack + lunch from the hotel.\\\"},{\\\"time\\\":\\\"02:00 PM\\\",\\\"activity\\\":\\\"Hiking + around the lakes\\\",\\\"location\\\":\\\"Alaudin Lakes\\\",\\\"notes\\\":\\\"Enjoy + stunning views and take photos.\\\"},{\\\"time\\\":\\\"05:00 PM\\\",\\\"activity\\\":\\\"Return + to Dushanbe\\\",\\\"location\\\":\\\"Dushanbe\\\",\\\"notes\\\":\\\"Relax + after an adventurous day.\\\"},{\\\"time\\\":\\\"07:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Kebab House\\\",\\\"location\\\":\\\"Kebab House\\\",\\\"notes\\\":\\\"Savor + delicious kebabs and local drinks.\\\"}],\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '133017' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/b37b4c7727a54482f8c71cb88799c108 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"X6XgDzvu2/o=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214208334000\",\"endTimeUnixNano\":\"1763042288332434000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ykfIkleyfn8=\",\"parentSpanId\":\"X6XgDzvu2/o=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214208605000\",\"endTimeUnixNano\":\"1763042288332353000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"JhAH0yZx3Ik=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214215610000\",\"endTimeUnixNano\":\"1763042217450079000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"928\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"21\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"949\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"7Pd25D1LOvw=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042217450618000\",\"endTimeUnixNano\":\"1763042219069521000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"Un2+PGYQ9to=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042219072031000\",\"endTimeUnixNano\":\"1763042221139663000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1456\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"19\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1475\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"IbK2qPHFUEU=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042221140625000\",\"endTimeUnixNano\":\"1763042223209324000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"f1ybKu8yoWY=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042223210273000\",\"endTimeUnixNano\":\"1763042226350110000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1544\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"36\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1580\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"Mix/K/BkE/k=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042226350768000\",\"endTimeUnixNano\":\"1763042227769106000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ZIkq2QIEfJc=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042227770300000\",\"endTimeUnixNano\":\"1763042229857312000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1862\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"19\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1881\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"th//dB4A1jI=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042229857982000\",\"endTimeUnixNano\":\"1763042230935832000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"rnS972TaPFE=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042230937025000\",\"endTimeUnixNano\":\"1763042234891211000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b5b6d48194ac4ff233dc086dc6\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Bratislava' info=DestinationInfo(title='Bratislava', + summary='Capital and largest city of Slovakia', extract='Bratislava is the + capital and largest city of the Slovak Republic and the fourth largest of + all cities on the river Danube. Officially, the population of the city is + about 475,000; however, some sources estimate the daily number of people moving + around the city based on mobile phone SIM cards is more than 570,000. Bratislava + is in southwestern Slovakia at the foot of the Little Carpathians, occupying + both banks of the Danube and the left bank of the River Morava. The city is + situated on the border of three countries\u2014Slovakia, Austria, and Hungary\u2014and + is the only national capital to have land borders with two other sovereign + states. Its geographic position places it exceptionally close to the Austrian + capital Vienna, making them the closest pair of capital cities in Europe at + just 50 kilometres (31\\\\xa0mi) apart.')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"cultural + exploration, history, local cuisine\\\",\\\"weather_info\\\":\\\"Current temperature + is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\\",\\\"destination_details\\\":\\\"Bratislava is the + capital and largest city of Slovakia, known for its location by the Danube + River and proximity to Austria and Hungary. It's an important cultural, economic, + and educational center of the region.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_Ka1nJGRoPHD4PU7UUYNV3Gpi\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2097\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"136\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2233\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"4+Xf2IVfm8g=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042234891664000\",\"endTimeUnixNano\":\"1763042274301203000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"tlKdJZeE6c0=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042274303621000\",\"endTimeUnixNano\":\"1763042288331400000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b5b6d48194ac4ff233dc086dc6\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Bratislava' info=DestinationInfo(title='Bratislava', + summary='Capital and largest city of Slovakia', extract='Bratislava is the + capital and largest city of the Slovak Republic and the fourth largest of + all cities on the river Danube. Officially, the population of the city is + about 475,000; however, some sources estimate the daily number of people moving + around the city based on mobile phone SIM cards is more than 570,000. Bratislava + is in southwestern Slovakia at the foot of the Little Carpathians, occupying + both banks of the Danube and the left bank of the River Morava. The city is + situated on the border of three countries\u2014Slovakia, Austria, and Hungary\u2014and + is the only national capital to have land borders with two other sovereign + states. Its geographic position places it exceptionally close to the Austrian + capital Vienna, making them the closest pair of capital cities in Europe at + just 50 kilometres (31\\\\xa0mi) apart.')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b8467481948a834b801a722259\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"cultural + exploration, history, local cuisine\\\",\\\"weather_info\\\":\\\"Current temperature + is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\\",\\\"destination_details\\\":\\\"Bratislava is the + capital and largest city of Slovakia, known for its location by the Danube + River and proximity to Austria and Hungary. It's an important cultural, economic, + and educational center of the region.\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 5-day itinerary for Bratislava' itinerary=TravelItinerary(trip_title='Cultural + Journey Through Bratislava', destination='Bratislava', duration_days=5, total_budget_estimate='$800', + daily_plans=[DayPlan(day_number=1, date='2023-11-15', title='Arrival and Old + Town Exploration', activities=[DayActivity(time='10:00 AM', activity='Arrive + in Bratislava', location='Bratislava Airport', notes='Take a taxi or shuttle + to the city center.'), DayActivity(time='11:30 AM', activity='Check-in to + accommodation', location='Hotel Danubia', notes='Moderate hotel near the city + center.'), DayActivity(time='12:30 PM', activity='Lunch at Slovak Pub', location='Obchodn\xE1 + 62', notes='Try traditional Slovak dishes like bryndzov\xE9 halu\u0161ky.'), + DayActivity(time='2:00 PM', activity='Stroll through the Old Town', location='Bratislava + Old Town', notes=\\\"Visit St. Michael's Gate, Main Square, and the Old Town + Hall.\\\"), DayActivity(time='4:00 PM', activity='Visit the Bratislava City + Museum', location='Radni\u010Dn\xE1 1', notes=\\\"Learn about the city's history.\\\"), + DayActivity(time='6:00 PM', activity='Dinner at Flagship Restaurant', location='Hlavn\xE9 + n\xE1mestie 4', notes='Enjoy local cuisine with a modern twist.')], meals=['Lunch + at Slovak Pub', 'Dinner at Flagship Restaurant'], accommodation='Hotel Danubia'), + DayPlan(day_number=2, date='2023-11-16', title='Castles and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at hotel', location='Hotel Danubia', notes='Enjoy + a complimentary breakfast.'), DayActivity(time='9:30 AM', activity='Visit + Bratislava Castle', location='Bratislava Castle', notes='Explore the castle + and enjoy views of the Danube.'), DayActivity(time='12:00 PM', activity='Lunch + at Caf\xE9 23', location='Karpatsk\xE1 23', notes='A trendy caf\xE9 with local + dishes.'), DayActivity(time='1:30 PM', activity='Tour the Slovak National + Gallery', location='R\xE1zusovo n\xE1bre\u017Eie 2', notes='Explore Slovak + art and culture.'), DayActivity(time='4:00 PM', activity='Relax at Sad Janka + Kr\xE1\u013Ea park', location='\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_Ka1nJGRoPHD4PU7UUYNV3Gpi\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"I've + planned a 5-day cultural journey to Bratislava, Slovakia for you. Here's your + itinerary:\\n\\n### Cultural Journey Through Bratislava\\n\\n#### **Day 1: + Arrival and Old Town Exploration**\\n- **10:00 AM:** Arrive in Bratislava + - Shuttle or taxi to city center.\\n- **11:30 AM:** Check-in to Hotel Danubia.\\n- + **12:30 PM:** Lunch at Slovak Pub - Try bryndzov\xE9 halu\u0161ky.\\n- **2:00 + PM:** Stroll through the Old Town - Visit St. Michael's Gate.\\n- **4:00 PM:** + Visit the Bratislava City Museum.\\n- **6:00 PM:** Dinner at Flagship Restaurant.\\n\\n#### + **Day 2: Castles and Culture**\\n- **8:00 AM:** Breakfast at Hotel Danubia.\\n- + **9:30 AM:** Visit Bratislava Castle - Great views of the Danube.\\n- **12:00 + PM:** Lunch at Caf\xE9 23.\\n- **1:30 PM:** Tour the Slovak National Gallery.\\n- + **4:00 PM:** Relax at Sad Janka Kr\xE1\u013Ea park.\\n- **7:00 PM:** Dinner + at Modr\xE1 Hviezda.\\n\\n#### **Day 3: Day Trip to Devin Castle**\\n- **8:00 + AM:** Breakfast at Hotel Danubia.\\n- **9:30 AM:** Travel to Devin Castle.\\n- + **10:00 AM:** Explore Devin Castle.\\n- **12:30 PM:** Lunch at Restaurant + Devin.\\n- **2:00 PM:** Return to Bratislava.\\n- **3:00 PM:** Visit the Blue + Church.\\n- **5:00 PM:** Free time in Old Town.\\n- **7:00 PM:** Dinner at + U Zlateho Hruska.\\n\\n#### **Day 4: Art and History**\\n- **8:00 AM:** Breakfast + at Hotel Danubia.\\n- **9:30 AM:** Visit the Museum of Jewish Culture.\\n- + **11:30 AM:** Explore the Bratislava City Gallery.\\n- **1:00 PM:** Lunch + at Urban House.\\n- **3:00 PM:** Visit the Presidential Palace.\\n- **5:00 + PM:** Dinner at Primi.\\n\\n#### **Day 5: Departure and Local Markets**\\n- + **8:00 AM:** Breakfast at Hotel Danubia.\\n- **9:30 AM:** Visit the Old Market + Hall.\\n- **11:00 AM:** Free time for shopping.\\n- **1:00 PM:** Lunch at + the market.\\n- **2:30 PM:** Check-out from hotel.\\n- **3:00 PM:** Transfer + to airport.\\n\\n### Travel Tips\\n- Use public transport for getting around + the city.\\n- Carry an umbrella or rain jacket for rain on November 17 and + 19.\\n- Learn basic Slovak phrases to enhance local interactions.\\n\\n### + Packing Suggestions\\n- Warm clothing layers and comfortable walk\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"3764\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"608\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4372\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ga2ddWDpwj0=\",\"parentSpanId\":\"7Pd25D1LOvw=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042217954037000\",\"endTimeUnixNano\":\"1763042219061913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"qlkYoPsmsxQ=\",\"parentSpanId\":\"IbK2qPHFUEU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042222244554000\",\"endTimeUnixNano\":\"1763042223207393000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Bratislava\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"OxRjSied6Tk=\",\"parentSpanId\":\"Mix/K/BkE/k=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042226855593000\",\"endTimeUnixNano\":\"1763042227766872000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=48.1516988\\u0026longitude=17.1093063\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"hMj8FLIUcPo=\",\"parentSpanId\":\"th//dB4A1jI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042230364285000\",\"endTimeUnixNano\":\"1763042230934612000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Bratislava\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"kUQ5JjMwU3s=\",\"parentSpanId\":\"4+Xf2IVfm8g=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042235404005000\",\"endTimeUnixNano\":\"1763042274299868000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 5-day itinerary for Bratislava.\\n\\nTrip + Details:\\n- Destination: Bratislava\\n- Duration: 5 days\\n- Budget: moderate\\n- + Interests: cultural exploration, history, local cuisine\\n- Weather: Current + temperature is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\n- Destination Info: Bratislava is the capital and + largest city of Slovakia, known for its location by the Danube River and proximity + to Austria and Hungary. It's an important cultural, economic, and educational + center of the region.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and cultural exploration, history, local cuisine + interests.\\nEach day should have 3-5 activities with specific times, locations, + and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS72PQr8E6ISNBF6AHyK4FMvQhCE\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2032\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1443\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"589\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Cultural + Journey Through Bratislava\\\",\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"total_budget_estimate\\\":\\\"$800\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-15\\\",\\\"title\\\":\\\"Arrival + and Old Town Exploration\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Bratislava\\\",\\\"location\\\":\\\"Bratislava Airport\\\",\\\"notes\\\":\\\"Take + a taxi or shuttle to the city center.\\\"},{\\\"time\\\":\\\"11:30 AM\\\",\\\"activity\\\":\\\"Check-in + to accommodation\\\",\\\"location\\\":\\\"Hotel Danubia\\\",\\\"notes\\\":\\\"Moderate + hotel near the city center.\\\"},{\\\"time\\\":\\\"12:30 PM\\\",\\\"activity\\\":\\\"Lunch + at Slovak Pub\\\",\\\"location\\\":\\\"Obchodn\xE1 62\\\",\\\"notes\\\":\\\"Try + traditional Slovak dishes like bryndzov\xE9 halu\u0161ky.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Stroll through the Old Town\\\",\\\"location\\\":\\\"Bratislava + Old Town\\\",\\\"notes\\\":\\\"Visit St. Michael's Gate, Main Square, and + the Old Town Hall.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Visit + the Bratislava City Museum\\\",\\\"location\\\":\\\"Radni\u010Dn\xE1 1\\\",\\\"notes\\\":\\\"Learn + about the city's history.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Flagship Restaurant\\\",\\\"location\\\":\\\"Hlavn\xE9 n\xE1mestie 4\\\",\\\"notes\\\":\\\"Enjoy + local cuisine with a modern twist.\\\"}],\\\"meals\\\":[\\\"Lunch at Slovak + Pub\\\",\\\"Dinner at Flagship Restaurant\\\"],\\\"accommodation\\\":\\\"Hotel + Danubia\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-16\\\",\\\"title\\\":\\\"Castles + and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at hotel\\\",\\\"location\\\":\\\"Hotel Danubia\\\",\\\"notes\\\":\\\"Enjoy + a complimentary breakfast.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Bratislava Castle\\\",\\\"location\\\":\\\"Bratislava Castle\\\",\\\"notes\\\":\\\"Explore + the castle and enjoy views of the Danube.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Caf\xE9 23\\\",\\\"location\\\":\\\"Karpatsk\xE1 23\\\",\\\"notes\\\":\\\"A + trendy caf\xE9 with local dishes.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Tour + the Slovak National Gallery\\\",\\\"location\\\":\\\"R\xE1zusovo n\xE1bre\u017Eie + 2\\\",\\\"notes\\\":\\\"Explore Slovak art and culture.\\\"},{\\\"time\\\":\\\"4:00 + PM\\\",\\\"activity\\\":\\\"Relax at Sad Janka Kr\xE1\u013Ea park\\\",\\\"location\\\":\\\"Sad + Janka Kr\xE1\u013Ea\\\",\\\"notes\\\":\\\"Enjoy nature and views of the Danube.\\\"},{\\\"time\\\":\\\"7:00 + PM\\\",\\\"activity\\\":\\\"Dinner at Modr\xE1 Hviezda\\\",\\\"location\\\":\\\"Hradn\xE9 + n\xE1mestie 2\\\",\\\"notes\\\":\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '86232' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/42ff472d7feb6215bec0cf4e350675b2 + response: + body: + string: '{"batches":[{"resource":{"attributes":[{"key":"telemetry.sdk.language","value":{"stringValue":"python"}},{"key":"telemetry.sdk.name","value":{"stringValue":"opentelemetry"}},{"key":"telemetry.sdk.version","value":{"stringValue":"1.38.0"}},{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},"scopeSpans":[{"scope":{"name":"opentelemetry.instrumentation.openai_agents","version":"0.47.5"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"NPzxuz+vo54=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187236891000","endTimeUnixNano":"1763042189460181000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"gen_ai.prompt.0.role","value":{"stringValue":"user"}},{"key":"gen_ai.prompt.0.content","value":{"stringValue":"I + want to visit New York for 7 days with a moderate budget. I love history. + Create me an itinerary."}},{"key":"llm.request.functions.0.name","value":{"stringValue":"search_destinations"}},{"key":"llm.request.functions.0.description","value":{"stringValue":"Search + for travel destinations by region or subregion using REST Countries API."}},{"key":"llm.request.functions.0.parameters","value":{"stringValue":"{\"properties\": + {\"region\": {\"default\": \"\", \"description\": \"Region to search (e.g., + \\\"Europe\\\", \\\"Asia\\\", \\\"Americas\\\")\", \"title\": \"Region\", + \"type\": \"string\"}, \"subregion\": {\"default\": \"\", \"description\": + \"Subregion to search (e.g., \\\"Southern Europe\\\", \\\"Southeast Asia\\\")\", + \"title\": \"Subregion\", \"type\": \"string\"}}, \"title\": \"search_destinations_args\", + \"type\": \"object\", \"additionalProperties\": false, \"required\": [\"region\", + \"subregion\"]}"}},{"key":"llm.request.functions.1.name","value":{"stringValue":"get_location_coordinates"}},{"key":"llm.request.functions.1.description","value":{"stringValue":"Get + coordinates for a location using Nominatim (OpenStreetMap) API."}},{"key":"llm.request.functions.1.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the city or location\", \"title\": + \"Location Name\", \"type\": \"string\"}}, \"required\": [\"location_name\"], + \"title\": \"get_location_coordinates_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.2.name","value":{"stringValue":"get_weather_forecast"}},{"key":"llm.request.functions.2.description","value":{"stringValue":"Get + current weather and 7-day forecast using Open-Meteo API (no API key required)."}},{"key":"llm.request.functions.2.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the location\", \"title\": + \"Location Name\", \"type\": \"string\"}, \"latitude\": {\"description\": + \"Latitude coordinate\", \"title\": \"Latitude\", \"type\": \"number\"}, \"longitude\": + {\"description\": \"Longitude coordinate\", \"title\": \"Longitude\", \"type\": + \"number\"}}, \"required\": [\"location_name\", \"latitude\", \"longitude\"], + \"title\": \"get_weather_forecast_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.3.name","value":{"stringValue":"get_destination_info"}},{"key":"llm.request.functions.3.description","value":{"stringValue":"Get + information about a destination from Wikipedia API."}},{"key":"llm.request.functions.3.parameters","value":{"stringValue":"{\"properties\": + {\"destination_name\": {\"description\": \"Name of the destination\", \"title\": + \"Destination Name\", \"type\": \"string\"}}, \"required\": [\"destination_name\"], + \"title\": \"get_destination_info_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.4.name","value":{"stringValue":"calculate_travel_distance"}},{"key":"llm.request.functions.4.description","value":{"stringValue":"Calculate + distance and estimated flight time between two locations.\nUses Haversine + formula for distance calculation."}},{"key":"llm.request.functions.4.parameters","value":{"stringValue":"{\"properties\": + {\"from_location\": {\"description\": \"Starting location name\", \"title\": + \"From Location\", \"type\": \"string\"}, \"to_location\": {\"description\": + \"Destination location name\", \"title\": \"To Location\", \"type\": \"string\"}, + \"from_lat\": {\"description\": \"Starting latitude\", \"title\": \"From Lat\", + \"type\": \"number\"}, \"from_lon\": {\"description\": \"Starting longitude\", + \"title\": \"From Lon\", \"type\": \"number\"}, \"to_lat\": {\"description\": + \"Destination latitude\", \"title\": \"To Lat\", \"type\": \"number\"}, \"to_lon\": + {\"description\": \"Destination longitude\", \"title\": \"To Lon\", \"type\": + \"number\"}}, \"required\": [\"from_location\", \"to_location\", \"from_lat\", + \"from_lon\", \"to_lat\", \"to_lon\"], \"title\": \"calculate_travel_distance_args\", + \"type\": \"object\", \"additionalProperties\": false}"}},{"key":"llm.request.functions.5.name","value":{"stringValue":"create_itinerary"}},{"key":"llm.request.functions.5.description","value":{"stringValue":"Create + a detailed day-by-day travel itinerary using AI."}},{"key":"llm.request.functions.5.parameters","value":{"stringValue":"{\"properties\": + {\"destination\": {\"description\": \"Main destination for the trip\", \"title\": + \"Destination\", \"type\": \"string\"}, \"duration_days\": {\"description\": + \"Number of days for the trip\", \"title\": \"Duration Days\", \"type\": \"integer\"}, + \"budget\": {\"description\": \"Budget level (budget, moderate, luxury)\", + \"title\": \"Budget\", \"type\": \"string\"}, \"interests\": {\"description\": + \"Traveler interests (e.g., food, history, nature)\", \"title\": \"Interests\", + \"type\": \"string\"}, \"weather_info\": {\"default\": \"\", \"description\": + \"Weather forecast information (optional)\", \"title\": \"Weather Info\", + \"type\": \"string\"}, \"destination_details\": {\"default\": \"\", \"description\": + \"Additional destination details (optional)\", \"title\": \"Destination Details\", + \"type\": \"string\"}}, \"required\": [\"destination\", \"duration_days\", + \"budget\", \"interests\", \"weather_info\", \"destination_details\"], \"title\": + \"create_itinerary_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"gen_ai.request.temperature","value":{"doubleValue":1}},{"key":"gen_ai.request.top_p","value":{"doubleValue":1}},{"key":"gen_ai.request.model","value":{"stringValue":"gpt-4o-2024-08-06"}},{"key":"gen_ai.completion.0.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.0.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.0.tool_calls.0.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.0.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\"}"}},{"key":"gen_ai.completion.0.tool_calls.0.id","value":{"stringValue":"call_M6Cz1ZtgBBRVhPAKwGhP4HkH"}},{"key":"gen_ai.completion.1.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.1.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.1.tool_calls.0.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.1.tool_calls.0.arguments","value":{"stringValue":"{\"destination_name\":\"New + York\"}"}},{"key":"gen_ai.completion.1.tool_calls.0.id","value":{"stringValue":"call_XjU0qIs2w9toMdl7I78qNPRd"}},{"key":"gen_ai.completion.2.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.2.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.2.tool_calls.0.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.2.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\",\"latitude\":40.7128,\"longitude\":-74.006}"}},{"key":"gen_ai.completion.2.tool_calls.0.id","value":{"stringValue":"call_vW1iVMpxm4W5VAjz3uvhFwxl"}},{"key":"gen_ai.usage.prompt_tokens","value":{"intValue":"313"}},{"key":"gen_ai.usage.completion_tokens","value":{"intValue":"81"}},{"key":"llm.usage.total_tokens","value":{"intValue":"394"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Jn+55BUIsg8=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042192790536000","endTimeUnixNano":"1763042197342144000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"qUtAVv3MWrg=","parentSpanId":"i9g02JupVjo=","name":"Travel + Planner Agent.agent","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187234430000","endTimeUnixNano":"1763042197342199000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"agent"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"i9g02JupVjo=","name":"Agent + Workflow","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187232503000","endTimeUnixNano":"1763042197342213000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"workflow"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.workflow.name","value":{"stringValue":"Agent + Workflow"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"ndtaGw2O47w=","parentSpanId":"qUtAVv3MWrg=","name":"get_destination_info.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461414000","endTimeUnixNano":"1763042192787831000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"lAvl8cSGCdQ=","parentSpanId":"qUtAVv3MWrg=","name":"get_weather_forecast.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461614000","endTimeUnixNano":"1763042192787979000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"DRPQ4fXYGOk=","parentSpanId":"qUtAVv3MWrg=","name":"get_location_coordinates.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461045000","endTimeUnixNano":"1763042192788272000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}}]},{"scope":{"name":"opentelemetry.instrumentation.requests","version":"0.59b0"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"gvjOX9XKnIQ=","parentSpanId":"ndtaGw2O47w=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042189966888000","endTimeUnixNano":"1763042190649032000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://en.wikipedia.org/api/rest_v1/page/summary/New%20York"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Vd7J6WeIkI0=","parentSpanId":"lAvl8cSGCdQ=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042190650755000","endTimeUnixNano":"1763042191744238000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://api.open-meteo.com/v1/forecast?latitude=40.7128\u0026longitude=-74.006\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\u0026timezone=auto\u0026forecast_days=7"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"QO7ZImsbB1g=","parentSpanId":"DRPQ4fXYGOk=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042191747300000","endTimeUnixNano":"1763042192786263000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://nominatim.openstreetmap.org/search?q=New+York\u0026format=json\u0026limit=1"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}}]}]}]}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '14143' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/9a8cb895bee63fabb705329a05ced33b + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"VVGqP3Zlh/I=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057714246000\",\"endTimeUnixNano\":\"1763042185226841000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ebIwige/t/I=\",\"parentSpanId\":\"VVGqP3Zlh/I=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057715150000\",\"endTimeUnixNano\":\"1763042185226760000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"XmMF4QV1t5I=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042160420265000\",\"endTimeUnixNano\":\"1763042185224042000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31f412c8193854f3d40a67569bb\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3203a048193a1db4cd095de78a1\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.19.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Malta' itinerary=TravelItinerary(trip_title='Malta: + A Luxurious Journey Through History and Culture', destination='Malta', duration_days=7, + total_budget_estimate='\u20AC5000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Valletta', activities=[DayActivity(time='10:00 AM', activity='Check + into the hotel.', location='Palazzo Consiglia, Valletta', notes='Luxurious + boutique hotel with a historic feel.'), DayActivity(time='12:00 PM', activity='Lunch + at the hotel restaurant.', location='Palazzo Consiglia', notes='Try local + specialties.'), DayActivity(time='2:00 PM', activity='Explore Valletta on + foot.', location='Valletta', notes=\\\"Visit St. John's Co-Cathedral and the + Upper Barracca Gardens.\\\"), DayActivity(time='5:00 PM', activity='Enjoy + a sunset at the Barracca Lift.', location='Upper Barracca Gardens', notes='Stunning + views of the Grand Harbour.'), DayActivity(time='7:30 PM', activity='Dinner + at The Harbour Club.', location='Valletta', notes='Fine dining with Mediterranean + cuisine.')], meals=['Lunch at Palazzo Consiglia', 'Dinner at The Harbour Club'], + accommodation='Palazzo Consiglia, Valletta'), DayPlan(day_number=2, date='2023-10-02', + title='Historical Wonders of Mdina', activities=[DayActivity(time='9:00 AM', + activity='Breakfast at the hotel.', location='Palazzo Consiglia', notes='Enjoy + a gourmet breakfast.'), DayActivity(time='10:30 AM', activity='Visit Mdina, + the Silent City.', location='Mdina', notes='Explore the narrow streets and + historic architecture.'), DayActivity(time='1:00 PM', activity='Lunch at Fontanella + Tea Garden.', location='Mdina', notes='Famous for its cakes and views.'), + DayActivity(time='3:00 PM', activity=\\\"Visit St. Paul's Cathedral and the + Mdina Dungeons.\\\", location='Mdina', notes='Immerse in the history of the + city.'), DayActivity(time='6:00 PM', activity='Return to Valletta.', location='Valletta', + notes='Free evening to relax.'), DayActivity(time='8:00 PM', activity='Dinner + at La Viletta.', location='Valletta', n\"}},{\"key\":\"gen_ai.prompt.19.tool_call_id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Paradise + Found: A Luxurious Escape to Barbados', destination='Barbados', duration_days=7, + total_budget_estimate='$5,000', daily_plans=[DayPlan(day_number=1, date='2023-11-01', + title='Arrival and Beach Relaxation', activities=[DayActivity(time='10:00 + AM', activity='Arrival at Grantley Adams International Airport', location='Bridgetown', + notes='Private transfer to hotel.'), DayActivity(time='12:00 PM', activity='Check-in + at Sandy Lane Hotel', location='Sandy Lane, St. James', notes='Enjoy a welcome + drink upon arrival.'), DayActivity(time='1:00 PM', activity='Lunch at The + Bajan Blue', location='Sandy Lane Hotel', notes='Try the fresh catch of the + day.'), DayActivity(time='3:00 PM', activity='Relax at the beach', location='Sandy + Lane Beach', notes='Enjoy complimentary beach services and cabanas.'), DayActivity(time='7:00 + PM', activity=\\\"Dinner at L'Acajou\\\", location='Sandy Lane Hotel', notes='Reserve + a table for an oceanfront dining experience.')], meals=['Lunch at The Bajan + Blue', \\\"Dinner at L'Acajou\\\"], accommodation='Sandy Lane Hotel'), DayPlan(day_number=2, + date='2023-11-02', title='Exploring the Nature and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at The Bajan Blue', location='Sandy Lane Hotel', + notes='Buffet breakfast included.'), DayActivity(time='9:30 AM', activity=\\\"Visit + Harrison's Cave\\\", location='Welches, St. Thomas', notes='Guided tram tour + of the limestone caves.'), DayActivity(time='12:00 PM', activity='Lunch at + The Cliff', location='The Cliff, St. James', notes='One of the best views + in Barbados.'), DayActivity(time='2:00 PM', activity='Explore the Andromeda + Botanic Gardens', location='Bathsheba', notes='Stroll through beautiful tropical + plants.'), DayActivity(time='5:00 PM', activity='Return to hotel and relax + by the pool', location='Sandy Lane Hotel', notes='Enjoy the sunset views.'), + DayActivity(time='8:00 PM', activity='Dinner at The Tides', location='Holetown', + notes='Fin\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a luxurious winter getaway itinerary for two amazing destinations: Malta and + Barbados. You can choose either for a memorable experience!\\n\\n### Malta: + A Luxurious Journey Through History and Culture\\n\\n#### Overview:\\n- **Duration:** + 7 Days\\n- **Budget:** \u20AC5000\\n- **Interests:** History, culture, relaxation\\n- + **Weather:** Partly cloudy, 14\xB0C to 25\xB0C\\n\\n#### Highlights:\\n- **Explore + Valletta:** Discover historic sites like St. John's Co-Cathedral and the Upper + Barracca Gardens.\\n- **Visit Mdina:** Wander through the narrow streets of + the Silent City.\\n- **Cruise the Blue Lagoon:** Relax and swim in crystal-clear + waters on Comino Island.\\n- **Art and Culture in Valletta:** Enjoy museums, + the Grand Master's Palace, and traditional Maltese cuisine.\\n- **Day in Gozo:** + Experience UNESCO sites and enjoy local cuisine in Xlendi Bay.\\n- **Relaxation + and Spa Day:** Indulge in luxury spa treatments and wine tasting.\\n\\n#### + Suggested Activities:\\n- Stroll through the National Museum of Archaeology.\\n- + Enjoy a Michelin-starred dining experience at Noni.\\n- Unwind at the historic + and luxurious Palazzo Consiglia.\\n\\n---\\n\\n### Barbados: Paradise Found\\n\\n#### + Overview:\\n- **Duration:** 7 Days\\n- **Budget:** $5,000\\n- **Interests:** + Beach, nature, relaxation\\n- **Weather:** Mainly clear with occasional rain, + 26\xB0C to 28\xB0C\\n\\n#### Highlights:\\n- **Stay at Sandy Lane:** Experience + luxury at a top-notch hotel.\\n- **Catamaran Cruise:** Snorkel and swim with + turtles.\\n- **Visit Harrison's Cave:** Explore stunning limestone formations.\\n- + **Beach Relaxation:** Enjoy water sports and sunbathing at Sandy Lane Beach.\\n- + **Cultural Sightseeing:** Visit the Barbados Museum and Andromeda Botanic + Gardens.\\n- **Island Adventure:** Discover the Animal Flower Cave and Bathsheba + Beach.\\n\\n#### Suggested Activities:\\n- Indulge in a private yoga session + on the beach.\\n- Savor local flavors at dining spots like The Cliff and Oistins + Fish Fry.\\n- Book a spa treatment for ultimate relaxation.\\n\\nChoose either + Malta for its rich history and culture or Barbados for its tropical para\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"6963\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"482\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7445\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"embCySXGZiM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057716128000\",\"endTimeUnixNano\":\"1763042059661983000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"60\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"525\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"mC8CCwLW76g=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663097000\",\"endTimeUnixNano\":\"1763042062451067000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ssDCKShkL44=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663477000\",\"endTimeUnixNano\":\"1763042062451172000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fuu6tO+Ndlo=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042062452499000\",\"endTimeUnixNano\":\"1763042064799092000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1003\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1055\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fvHJdvNTMws=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064799830000\",\"endTimeUnixNano\":\"1763042067739773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"T8dJZDmT4I4=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064800127000\",\"endTimeUnixNano\":\"1763042067739862000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"v6cWcKHOCjI=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042067741423000\",\"endTimeUnixNano\":\"1763042070448846000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1077\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"86\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1163\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"UEIsxC37pwE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449031000\",\"endTimeUnixNano\":\"1763042072801957000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"THKreibx8ug=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449103000\",\"endTimeUnixNano\":\"1763042072802080000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"YBTnmbTN6jE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042072803790000\",\"endTimeUnixNano\":\"1763042075107212000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1391\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1443\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"SxqLZKfWCmA=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108148000\",\"endTimeUnixNano\":\"1763042076670490000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"5dBBk3l1eiQ=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108516000\",\"endTimeUnixNano\":\"1763042076670556000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"cE+1FFJhlnU=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076671577000\",\"endTimeUnixNano\":\"1763042082126494000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1535\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"208\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1743\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"QAlZHx6RuLM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082127730000\",\"endTimeUnixNano\":\"1763042160416987000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"th2IYCV4hsE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082128207000\",\"endTimeUnixNano\":\"1763042160417136000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HDPGse/8x4o=\",\"parentSpanId\":\"mC8CCwLW76g=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042060166394000\",\"endTimeUnixNano\":\"1763042061283475000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"IA+JMvfXJl8=\",\"parentSpanId\":\"ssDCKShkL44=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042061306153000\",\"endTimeUnixNano\":\"1763042062439682000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"PzmXYx0yNzo=\",\"parentSpanId\":\"fvHJdvNTMws=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042065903652000\",\"endTimeUnixNano\":\"1763042066847763000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Malta\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ON9RLT3j6a4=\",\"parentSpanId\":\"T8dJZDmT4I4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042066849545000\",\"endTimeUnixNano\":\"1763042067737708000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"M2Q2FV2cXIU=\",\"parentSpanId\":\"UEIsxC37pwE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042070951475000\",\"endTimeUnixNano\":\"1763042071877256000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=35.8885993\\u0026longitude=14.4476911\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Ze33HN9DUpc=\",\"parentSpanId\":\"THKreibx8ug=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042071879722000\",\"endTimeUnixNano\":\"1763042072800019000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HKpm5tCLJzU=\",\"parentSpanId\":\"SxqLZKfWCmA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042075611055000\",\"endTimeUnixNano\":\"1763042076145487000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Malta\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"lAzYqhlHfpg=\",\"parentSpanId\":\"5dBBk3l1eiQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076148467000\",\"endTimeUnixNano\":\"1763042076669422000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Znd3vlNcirg=\",\"parentSpanId\":\"th2IYCV4hsE=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042123087205000\",\"endTimeUnixNano\":\"1763042160414874000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: beach, nature, relaxation\\n- Weather: Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\n- Destination Info: Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the luxury budget level and beach, nature, + relaxation interests.\\nEach day should have 3-5 activities with specific + times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS5EtpivASLkttPJzZ83ik15FlLX\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2260\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1719\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"541\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Paradise + Found: A Luxurious Escape to Barbados\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$5,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-01\\\",\\\"title\\\":\\\"Arrival + and Beach Relaxation\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrival + at Grantley Adams International Airport\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Private + transfer to hotel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at Sandy Lane Hotel\\\",\\\"location\\\":\\\"Sandy Lane, St. James\\\",\\\"notes\\\":\\\"Enjoy + a welcome drink upon arrival.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Try + the fresh catch of the day.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at the beach\\\",\\\"location\\\":\\\"Sandy Lane Beach\\\",\\\"notes\\\":\\\"Enjoy + complimentary beach services and cabanas.\\\"},{\\\"time\\\":\\\"7:00 PM\\\",\\\"activity\\\":\\\"Dinner + at L'Acajou\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Reserve + a table for an oceanfront dining experience.\\\"}],\\\"meals\\\":[\\\"Lunch + at The Bajan Blue\\\",\\\"Dinner at L'Acajou\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-02\\\",\\\"title\\\":\\\"Exploring + the Nature and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Buffet + breakfast included.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Harrison's Cave\\\",\\\"location\\\":\\\"Welches, St. Thomas\\\",\\\"notes\\\":\\\"Guided + tram tour of the limestone caves.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Cliff\\\",\\\"location\\\":\\\"The Cliff, St. James\\\",\\\"notes\\\":\\\"One + of the best views in Barbados.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + the Andromeda Botanic Gardens\\\",\\\"location\\\":\\\"Bathsheba\\\",\\\"notes\\\":\\\"Stroll + through beautiful tropical plants.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to hotel and relax by the pool\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Enjoy + the sunset views.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Tides\\\",\\\"location\\\":\\\"Holetown\\\",\\\"notes\\\":\\\"Fine + dining with a local twist.\\\"}],\\\"meals\\\":[\\\"Breakfast at The Bajan + Blue\\\",\\\"Lunch at The Cliff\\\",\\\"Dinner at The Tides\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"BVSE4lyy6Ng=\",\"parentSpanId\":\"QAlZHx6RuLM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042082648743000\",\"endTimeUnixNano\":\"1763042123074678000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Malta.\\n\\nTrip + Details:\\n- Destination: Malta\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: history, culture, relaxation\\n- Weather: Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\n- Destination Info: Malta is an island country + in Southern Europe, located in the Mediterranean Sea. The country's capital, + Valletta, is a historic city rich in culture and architecture. Official languages + are Maltese and English.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the luxury budget level and history, culture, relaxation interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS4aBtO0u5Rq9bvPgdgOeSH0n75R\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2342\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1792\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"550\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Malta: + A Luxurious Journey Through History and Culture\\\",\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC5000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Valletta\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia, Valletta\\\",\\\"notes\\\":\\\"Luxurious + boutique hotel with a historic feel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Try + local specialties.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + Valletta on foot.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Visit + St. John's Co-Cathedral and the Upper Barracca Gardens.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a sunset at the Barracca Lift.\\\",\\\"location\\\":\\\"Upper + Barracca Gardens\\\",\\\"notes\\\":\\\"Stunning views of the Grand Harbour.\\\"},{\\\"time\\\":\\\"7:30 + PM\\\",\\\"activity\\\":\\\"Dinner at The Harbour Club.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Fine + dining with Mediterranean cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Palazzo + Consiglia\\\",\\\"Dinner at The Harbour Club\\\"],\\\"accommodation\\\":\\\"Palazzo + Consiglia, Valletta\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Historical + Wonders of Mdina\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Enjoy + a gourmet breakfast.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Visit + Mdina, the Silent City.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Explore + the narrow streets and historic architecture.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Fontanella Tea Garden.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Famous + for its cakes and views.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + St. Paul's Cathedral and the Mdina Dungeons.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Immerse + in the history of the city.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Return + to Valletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Free + evening to relax.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at La Viletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Authentic + Maltese cuisine.\\\"}],\\\"meals\\\":[\\\"Breakfast at Palazzo Consiglia\\\",\\\"Lunch + at Fontanella Tea Garden\\\",\\\"Dinner at La Viletta\\\"],\\\"accommodation\\\":\\\"Palazzo\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '127530' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/693bde2879b745ff467c20bf9cd2ea7a + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"pApb0LsOSf0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984002122000\",\"endTimeUnixNano\":\"1763042055706374000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Ty846xocHPs=\",\"parentSpanId\":\"pApb0LsOSf0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984003244000\",\"endTimeUnixNano\":\"1763042055706244000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"r4Bxnys8Ajs=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042004652154000\",\"endTimeUnixNano\":\"1763042043092842000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"dvw9i3v4lK0=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042043095808000\",\"endTimeUnixNano\":\"1763042055704401000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2d2455c81978681b90b08ba66c7\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Nature + \\u0026 Adventure in New Zealand: A Week of Wonders', destination='New Zealand', + duration_days=7, total_budget_estimate='$1,500 - $2,000', daily_plans=[DayPlan(day_number=1, + date='2023-10-01', title='Arrival in Auckland', activities=[DayActivity(time='10:00 + AM', activity='Arrive at Auckland Airport', location='Auckland Airport', notes='Collect + rental car from the airport.'), DayActivity(time='12:00 PM', activity='Lunch + at Depot Eatery', location='Auckland', notes='Try local favorites like the + green-lipped mussels.'), DayActivity(time='2:00 PM', activity='Visit Auckland + War Memorial Museum', location='Domain Drive, Auckland', notes='Explore Maori + culture and New Zealand\u2019s natural history.'), DayActivity(time='4:00 + PM', activity='Stroll in Auckland Domain', location='Auckland', notes='Enjoy + the gardens and scenic views.'), DayActivity(time='6:00 PM', activity='Dinner + at The Glass Goose Bar \\u0026 Eatery', location='Auckland', notes='Outdoor + seating available.')], meals=['Lunch at Depot Eatery', 'Dinner at The Glass + Goose Bar \\u0026 Eatery'], accommodation='SkyCity Hotel, Auckland'), DayPlan(day_number=2, + date='2023-10-02', title='Exploring Rotorua', activities=[DayActivity(time='8:00 + AM', activity='Drive to Rotorua', location='Auckland to Rotorua (approx. 3 + hours)', notes='Enjoy scenic views along the way.'), DayActivity(time='11:00 + AM', activity='Visit Te Puia', location='Rotorua', notes='See geysers and + learn about Maori culture.'), DayActivity(time='1:00 PM', activity='Lunch + at Puku Puku Caf\xE9', location='Rotorua', notes='Sample local dishes.'), + DayActivity(time='3:00 PM', activity='Relax in the Polynesian Spa', location='Rotorua', + notes='Enjoy geothermal pools.'), DayActivity(time='6:00 PM', activity='Dinner + at Eat Streat', location='Rotorua', notes='Choose from various food stalls.')], + meals=['Lunch at Puku Puku Caf\xE9', 'Dinner at Eat Streat'], accommodation='Regent + of Rotorua'), DayPlan(day_number=3, date='2023-1\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"### + Nature \\u0026 Adventure in New Zealand: A Week of Wonders\\n\\n#### Destination: + New Zealand\\n- **Duration:** 7 Days\\n- **Budget:** Moderate ($1,500 - $2,000)\\n- + **Interests:** Nature, Adventure, Culture\\n\\n#### Weather Insights\\n- Current + conditions are overcast with a temperature of 7.6\xB0C.\\n- Expect mild temperatures + with some precipitation next week, ranging from 4\xB0C to 22\xB0C.\\n\\n#### + Trip Overview\\n\\n**Day 1: Arrival in Auckland**\\n- **10:00 AM:** Arrive + at Auckland Airport - Collect rental car.\\n- **12:00 PM:** Lunch at Depot + Eatery - Try local green-lipped mussels.\\n- **2:00 PM:** Visit Auckland War + Memorial Museum - Explore Maori culture.\\n- **4:00 PM:** Stroll in Auckland + Domain - Enjoy gardens and views.\\n- **6:00 PM:** Dinner at The Glass Goose + Bar \\u0026 Eatery.\\n- **Accommodation:** SkyCity Hotel, Auckland\\n\\n**Day + 2: Exploring Rotorua**\\n- **8:00 AM:** Drive to Rotorua (3 hours).\\n- **11:00 + AM:** Visit Te Puia - See geysers and Maori culture.\\n- **1:00 PM:** Lunch + at Puku Puku Caf\xE9 - Sample local dishes.\\n- **3:00 PM:** Relax in Polynesian + Spa - Enjoy geothermal pools.\\n- **6:00 PM:** Dinner at Eat Streat.\\n- **Accommodation:** + Regent of Rotorua\\n\\n**Day 3: Adventure in Taupo**\\n- **8:00 AM:** Drive + to Taupo (1 hour).\\n- **10:00 AM:** Visit Huka Falls.\\n- **12:00 PM:** Lunch + at The Boat Shed Caf\xE9.\\n- **2:00 PM:** Skydiving or Jet Boating - Book + in advance.\\n- **5:00 PM:** Relax at Taupo Lake Front.\\n- **Accommodation:** + Millennium Hotel Taupo\\n\\n**Day 4: Tongariro National Park**\\n- **7:00 + AM:** Drive to Tongariro (1 hour).\\n- **8:30 AM:** Begin Tongariro Alpine + Crossing - Full-day hike.\\n- **12:00 PM:** Lunch on the trail - Pack a picnic.\\n- + **4:00 PM:** Complete hike - Stunning views.\\n- **6:00 PM:** Dinner at a + local lodge.\\n- **Accommodation:** Chateau Tongariro Hotel\\n\\n**Day 5: + Wellington Culture Day**\\n- **8:00 AM:** Drive to Wellington (4 hours).\\n- + **12:00 PM:** Lunch at Fidel's Caf\xE9.\\n- **2:00 PM:** Visit Te Papa Tongarewa + Museum - Free entry.\\n- **4:00 PM:** Walk along Wellington Waterfront.\\n- + **6:00 PM:** Dinner at Ortega Fish Shack.\\n- **A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4339\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"846\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5185\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"IS6vpvXSyWc=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984005653000\",\"endTimeUnixNano\":\"1763041985613511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"936\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"959\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"brUFs0ciw1M=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041985613918000\",\"endTimeUnixNano\":\"1763041987102501000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Irx+5vAh2RA=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041987103912000\",\"endTimeUnixNano\":\"1763041990567857000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"801\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8D1wUHRUnJY=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568009000\",\"endTimeUnixNano\":\"1763041993540330000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Z0YMsVUAJiE=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568056000\",\"endTimeUnixNano\":\"1763041993540426000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"YOs61ryvpF4=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041993541968000\",\"endTimeUnixNano\":\"1763041995719255000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"876\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"84\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"960\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"4JCF5eBk2tQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719607000\",\"endTimeUnixNano\":\"1763041998146609000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ixR9+7Z/j1o=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719759000\",\"endTimeUnixNano\":\"1763041998146773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8mbS0moocyI=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041998148255000\",\"endTimeUnixNano\":\"1763041999477499000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2374\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"18\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2392\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ZXf5rcFUcLQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041999478441000\",\"endTimeUnixNano\":\"1763042000768653000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"1qbdTW8b/2E=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042000769229000\",\"endTimeUnixNano\":\"1763042004651429000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2545\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2687\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"NKOz3ltzNm0=\",\"parentSpanId\":\"r4Bxnys8Ajs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042005169975000\",\"endTimeUnixNano\":\"1763042043090298000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: nature, adventure, culture\\n- Weather: Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\n- Destination Info: New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It's known for varied topography and sharp mountain peaks, + including the Southern Alps. The capital city is Wellington, and its most + populous city is Auckland.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and nature, adventure, culture interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS3K2CF576d4YsisW6wGQEds7rmH\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2169\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1573\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"596\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Nature + \\u0026 Adventure in New Zealand: A Week of Wonders\\\",\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500 + - $2,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + rental car from the airport.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Depot Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Try + local favorites like the green-lipped mussels.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Domain + Drive, Auckland\\\",\\\"notes\\\":\\\"Explore Maori culture and New Zealand\u2019s + natural history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Stroll + in Auckland Domain\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Enjoy + the gardens and scenic views.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Outdoor + seating available.\\\"}],\\\"meals\\\":[\\\"Lunch at Depot Eatery\\\",\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + Rotorua\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Rotorua\\\",\\\"location\\\":\\\"Auckland to Rotorua (approx. 3 hours)\\\",\\\"notes\\\":\\\"Enjoy + scenic views along the way.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit + Te Puia\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"See geysers + and learn about Maori culture.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Puku Puku Caf\xE9\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Sample + local dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + in the Polynesian Spa\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Enjoy + geothermal pools.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Eat Streat\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Choose + from various food stalls.\\\"}],\\\"meals\\\":[\\\"Lunch at Puku Puku Caf\xE9\\\",\\\"Dinner + at Eat Streat\\\"],\\\"accommodation\\\":\\\"Regent of Rotorua\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Adventure + in Taupo\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Taupo\\\",\\\"location\\\":\\\"Rotorua to Taupo (approx. 1 hour)\\\",\\\"notes\\\":\\\"Stop + at Huk\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"056VGM+8Nok=\",\"parentSpanId\":\"brUFs0ciw1M=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041986115747000\",\"endTimeUnixNano\":\"1763041987094583000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"kvjaqj4KYrQ=\",\"parentSpanId\":\"8D1wUHRUnJY=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041991671179000\",\"endTimeUnixNano\":\"1763041992478589000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"u+rad2kmPnI=\",\"parentSpanId\":\"Z0YMsVUAJiE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041992480116000\",\"endTimeUnixNano\":\"1763041993538494000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ETHKBPTcA2s=\",\"parentSpanId\":\"4JCF5eBk2tQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041996225152000\",\"endTimeUnixNano\":\"1763041997195369000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"jQ6zmabmw2M=\",\"parentSpanId\":\"ixR9+7Z/j1o=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041997198300000\",\"endTimeUnixNano\":\"1763041998144145000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"0YqSiXc6Hig=\",\"parentSpanId\":\"ZXf5rcFUcLQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041999981250000\",\"endTimeUnixNano\":\"1763042000767913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '98254' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/eed63641fc3ffa3ea40a166e2604edd2 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"kDfoXagrNmk=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306563000\",\"endTimeUnixNano\":\"1763041981994302000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"5t6oCNV1x24=\",\"parentSpanId\":\"kDfoXagrNmk=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306752000\",\"endTimeUnixNano\":\"1763041981994217000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"CPDw9H+t3W0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041900556562000\",\"endTimeUnixNano\":\"1763041909681624000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are some great beach destinations for families in the Americas to consider:\\n\\n1. + **Barbados (Caribbean)**\\n - Language: English\\n - Currency: BBD\\n + \ - Known for its beautiful sandy beaches and vibrant culture.\\n\\n2. **Puerto + Rico (Caribbean)**\\n - Languages: English, Spanish\\n - Currency: USD\\n + \ - Offers lovely beaches, lush rainforests, and a rich cultural heritage.\\n\\n3. + **Turks and Caicos Islands (Caribbean)**\\n - Language: English\\n - Currency: + USD\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\n\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\n\\nI'll gather weather + information and details about Barbados and then create your itinerary.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"664\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"221\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"885\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"gjU8x51ljN8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909682975000\",\"endTimeUnixNano\":\"1763041912228857000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"saPJCTZOa8E=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909683354000\",\"endTimeUnixNano\":\"1763041912228748000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"v4pJsgk8eu8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041912233276000\",\"endTimeUnixNano\":\"1763041916478547000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1859\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"37\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1896\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vW7dC7113KM=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041916479365000\",\"endTimeUnixNano\":\"1763041923081358000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"S5LEq3ro4i0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041923083562000\",\"endTimeUnixNano\":\"1763041926952714000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2178\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"127\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2305\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"0revCekYick=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041926953355000\",\"endTimeUnixNano\":\"1763041968277636000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"awXbMZjA1IQ=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041968278645000\",\"endTimeUnixNano\":\"1763041981992200000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e284b4408193b787ece129274ff2\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Beach + Bliss in Barbados: A 7-Day Tropical Escape', destination='Barbados', duration_days=7, + total_budget_estimate='$1,500', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and Beach Day', activities=[DayActivity(time='12:00 PM', activity='Check-in + at hotel', location='Turtle Beach by Elegant Hotels', notes='Enjoy welcome + drinks and settle into your room.'), DayActivity(time='1:30 PM', activity='Lunch + at the hotel restaurant', location='Turtle Beach', notes='Try the grilled + fish with local spices.'), DayActivity(time='3:00 PM', activity='Relax at + Dover Beach', location='Dover Beach', notes='Beach chairs and umbrellas available + for rent.'), DayActivity(time='6:00 PM', activity='Sunset viewing', location='Dover + Beach', notes='Perfect spot for photos.'), DayActivity(time='7:30 PM', activity='Dinner + at The Oistins Fish Fry', location='Oistins', notes='A vibrant atmosphere + with fresh seafood.')], meals=['Lunch at Turtle Beach', 'Dinner at Oistins + Fish Fry'], accommodation='Turtle Beach by Elegant Hotels'), DayPlan(day_number=2, + date='2023-10-02', title='Explore Bridgetown', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at the hotel', location='Turtle Beach', notes='Buffet + style with local and international options.'), DayActivity(time='9:30 AM', + activity='Visit the Barbados Museum \\u0026 Historical Society', location='Bridgetown', + notes=\\\"Learn about the island's history.\\\"), DayActivity(time='12:00 + PM', activity='Lunch at Brown Sugar', location='Bridgetown', notes='Taste + local dishes in an outdoor setting.'), DayActivity(time='2:00 PM', activity='Explore + George Street and local shops', location='Bridgetown', notes='Pick up souvenirs + and local crafts.'), DayActivity(time='4:00 PM', activity='Relax at Pebbles + Beach', location='Pebbles Beach', notes='Enjoy swimming and sunbathing.'), + DayActivity(time='6:00 PM', activity='Dinner at The Cliff', location='St. + James', notes='Reservations recommend\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for your family vacation in Barbados, focusing + on beach activities and cultural experiences:\\n\\n### Trip Title: Beach Bliss + in Barbados: A 7-Day Tropical Escape\\n\\n#### **Day 1: Arrival and Beach + Day**\\n- **12:00 PM:** Check-in at Turtle Beach by Elegant Hotels. Enjoy + welcome drinks and settle in.\\n- **1:30 PM:** Lunch at the hotel restaurant. + Try the grilled fish with local spices.\\n- **3:00 PM:** Relax at Dover Beach. + Beach chairs and umbrellas available.\\n- **6:00 PM:** Enjoy a sunset viewing + at Dover Beach\u2014perfect for photos.\\n- **7:30 PM:** Dinner at The Oistins + Fish Fry. Vibrant atmosphere with fresh seafood.\\n\\n#### **Day 2: Explore + Bridgetown**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** + Visit the Barbados Museum \\u0026 Historical Society. Learn about the island's + history.\\n- **12:00 PM:** Lunch at Brown Sugar. Taste local dishes.\\n- **2:00 + PM:** Explore George Street and local shops for souvenirs.\\n- **4:00 PM:** + Relax at Pebbles Beach. Enjoy swimming and sunbathing.\\n- **6:00 PM:** Dinner + at The Cliff. Stunning ocean views, reservations recommended.\\n\\n#### **Day + 3: Catamaran Adventure**\\n- **7:30 AM:** Breakfast at Turtle Beach.\\n- **9:00 + AM:** Catamaran cruise from Bridgetown. Swim with turtles and snorkel at coral + reefs.\\n- **12:30 PM:** Lunch on board the catamaran.\\n- **3:00 PM:** Return + to the hotel, relax at the beach or pool.\\n- **7:00 PM:** Dinner at The Round + House in Bathsheba. Try local fish dishes.\\n\\n#### **Day 4: Beach Hopping**\\n- + **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** Visit Crane Beach. + Famous for its pink sand.\\n- **12:00 PM:** Lunch at The Crane Beach Resort.\\n- + **2:00 PM:** Head to Bottom Bay Beach. Less crowded and perfect for relaxation.\\n- + **5:00 PM:** Return to hotel.\\n- **7:30 PM:** Dinner at Naru Restaurant and + Lounge. Local and Asian fusion cuisine.\\n\\n#### **Day 5: Island Culture + and Relaxation**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **10:00 AM:** + Visit St. Nicholas Abbey. Tour the plantation and rum distillery.\\n- **1:00 + PM:** Lunch at the A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4121\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"842\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4963\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vSd7s42xrTw=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894311147000\",\"endTimeUnixNano\":\"1763041898739189000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"932\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"22\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"954\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"dkkP9YWRUaI=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041898739699000\",\"endTimeUnixNano\":\"1763041900553722000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"jB510DMs6/8=\",\"parentSpanId\":\"saPJCTZOa8E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910186602000\",\"endTimeUnixNano\":\"1763041910919083000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"I4smyApmv2I=\",\"parentSpanId\":\"gjU8x51ljN8=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910919911000\",\"endTimeUnixNano\":\"1763041912227844000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wsif3cTB5R0=\",\"parentSpanId\":\"vW7dC7113KM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041916984585000\",\"endTimeUnixNano\":\"1763041923078888000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"T263X02AHSc=\",\"parentSpanId\":\"dkkP9YWRUaI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041899242488000\",\"endTimeUnixNano\":\"1763041900545636000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wJnvML6OlKo=\",\"parentSpanId\":\"0revCekYick=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041927471141000\",\"endTimeUnixNano\":\"1763041968276800000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: beaches\\n- Weather: Current temperature 27.4\xB0C, mainly clear + conditions. Forecast: mostly warm weather with some rain expected later in + the week.\\n- Destination Info: Barbados is an island country in the Caribbean + located in the Atlantic Ocean. It is part of the Lesser Antilles of the West + Indies and the easternmost island of the Caribbean region. It lies on the + boundary of the South American and Caribbean plates. Its capital and largest + city is Bridgetown.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and beaches interests.\\nEach day should have 3-5 + activities with specific times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS25L4VnHyasIegXuwEirm30SBWf\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2288\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1717\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"571\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Beach + Bliss in Barbados: A 7-Day Tropical Escape\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Beach Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at hotel\\\",\\\"location\\\":\\\"Turtle Beach by Elegant Hotels\\\",\\\"notes\\\":\\\"Enjoy + welcome drinks and settle into your room.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Try + the grilled fish with local spices.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at Dover Beach\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Beach + chairs and umbrellas available for rent.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Sunset + viewing\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Perfect + spot for photos.\\\"},{\\\"time\\\":\\\"7:30 PM\\\",\\\"activity\\\":\\\"Dinner + at The Oistins Fish Fry\\\",\\\"location\\\":\\\"Oistins\\\",\\\"notes\\\":\\\"A + vibrant atmosphere with fresh seafood.\\\"}],\\\"meals\\\":[\\\"Lunch at Turtle + Beach\\\",\\\"Dinner at Oistins Fish Fry\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Explore + Bridgetown\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Buffet + style with local and international options.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + the Barbados Museum \\u0026 Historical Society\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Learn + about the island's history.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Brown Sugar\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Taste + local dishes in an outdoor setting.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + George Street and local shops\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Pick + up souvenirs and local crafts.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Relax + at Pebbles Beach\\\",\\\"location\\\":\\\"Pebbles Beach\\\",\\\"notes\\\":\\\"Enjoy + swimming and sunbathing.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Cliff\\\",\\\"location\\\":\\\"St. James\\\",\\\"notes\\\":\\\"Reservations + recommended for stunning ocean views.\\\"}],\\\"meals\\\":[\\\"Breakfast at + Turtle Beach\\\",\\\"Lunch at Brown Sugar\\\",\\\"Dinner at The Cliff\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '79035' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoLLMSpans.test_search_traces_with_llm_model_filter.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoLLMSpans.test_search_traces_with_llm_model_filter.yaml new file mode 100644 index 0000000..130e40f --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoLLMSpans.test_search_traces_with_llm_model_filter.yaml @@ -0,0 +1,122 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B+span.gen_ai.request.model+%3D+%22gpt-4%22+%7D&limit=5 + response: + body: + string: '{"traces":[],"metrics":{"inspectedBytes":"111725","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B+span.gen_ai.request.model+%3D+%22gpt-3.5-turbo%22+%7D&limit=5 + response: + body: + string: '{"traces":[],"metrics":{"inspectedBytes":"111725","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B+span.gen_ai.request.model+%3D+%22claude-3%22+%7D&limit=5 + response: + body: + string: '{"traces":[],"metrics":{"inspectedBytes":"111725","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B+span.gen_ai.request.model+%3D+%22claude-2%22+%7D&limit=5 + response: + body: + string: '{"traces":[],"metrics":{"inspectedBytes":"111725","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Length: + - '126' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoListServices.test_list_services.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoListServices.test_list_services.yaml new file mode 100644 index 0000000..a9e546b --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoListServices.test_list_services.yaml @@ -0,0 +1,39 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B%7D&limit=1000 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}},{"traceID":"b37b4c7727a54482f8c71cb88799c108","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042214208334000","durationMs":74124,"spanSet":{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18},"spanSets":[{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18}],"serviceStats":{"travel-agent-demo2":{"spanCount":18}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"67921","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Vary: + - Accept-Encoding + content-length: + - '6560' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoSearchSpans.test_search_spans_basic.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchSpans.test_search_spans_basic.yaml new file mode 100644 index 0000000..2cb5ef1 --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchSpans.test_search_spans_basic.yaml @@ -0,0 +1,5248 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B%7D&limit=40 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}},{"traceID":"b37b4c7727a54482f8c71cb88799c108","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042214208334000","durationMs":74124,"spanSet":{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18},"spanSets":[{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18}],"serviceStats":{"travel-agent-demo2":{"spanCount":18}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"67921","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Vary: + - Accept-Encoding + content-length: + - '6560' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/bec9c8df1c3a22a134e4c9c7aa0f0ce3 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"htO31/xjQN0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458122243000\",\"endTimeUnixNano\":\"1763042536895402000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"0hFkYEm0pAA=\",\"parentSpanId\":\"htO31/xjQN0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458123662000\",\"endTimeUnixNano\":\"1763042536895316000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"FSS1aMtuo4g=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042521888311000\",\"endTimeUnixNano\":\"1763042536893685000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4ab7f848195ada04713bd68e3dc\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Exploring + the Wonders of New Zealand', destination='New Zealand', duration_days=7, total_budget_estimate='$1,500', + daily_plans=[DayPlan(day_number=1, date='2023-10-01', title='Arrival in Auckland', + activities=[DayActivity(time='09:00 AM', activity='Arrive at Auckland Airport', + location='Auckland Airport', notes='Collect your rental car for the week.'), + DayActivity(time='10:00 AM', activity='Check into Accommodation', location='SkyCity + Hotel', notes='Located in the city center, convenient for exploring.'), DayActivity(time='11:30 + AM', activity='Visit Auckland War Memorial Museum', location='Auckland Domain', + notes='Explore New Zealand\u2019s cultural heritage and natural history.'), + DayActivity(time='02:00 PM', activity='Lunch at Tom Tom Bar \\u0026 Eatery', + location='SkyCity', notes='Enjoy a relaxing meal with views of the city.'), + DayActivity(time='03:30 PM', activity='Walk around Viaduct Harbour', location='Viaduct + Harbour', notes='Stroll along the waterfront and enjoy the vibrant atmosphere.'), + DayActivity(time='06:30 PM', activity='Dinner at Depot Eatery', location='Federal + Street, Auckland', notes='Experience local New Zealand cuisine.')], meals=['Lunch + at Tom Tom Bar \\u0026 Eatery', 'Dinner at Depot Eatery'], accommodation='SkyCity + Hotel, Auckland'), DayPlan(day_number=2, date='2023-10-02', title='Exploring + the Bay of Islands', activities=[DayActivity(time='07:00 AM', activity='Drive + to Bay of Islands', location='Bay of Islands', notes='Approx. 3 hours drive, + enjoy scenic views on the way.'), DayActivity(time='10:30 AM', activity='Take + a Bay of Islands Cruise', location='Paihia Wharf', notes='Explore the stunning + islands and spot marine wildlife.'), DayActivity(time='01:00 PM', activity='Lunch + at The Gables Restaurant', location='Russell', notes='Try fresh seafood and + local dishes.'), DayActivity(time='03:00 PM', activity='Visit Waitangi Treaty + Grounds', location='Waitangi', notes=\\\"Learn about New Zealand's history + an\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for a romantic cultural vacation in New Zealand, + tailored to your interests:\\n\\n### Exploring the Wonders of New Zealand\\n\\n#### + **Day 1: Arrival in Auckland**\\n- **Morning**\\n - Arrive at Auckland Airport\\n + \ - Check into SkyCity Hotel, centrally located for easy exploration.\\n- + **Afternoon**\\n - Visit Auckland War Memorial Museum: Delve into New Zealand\u2019s + cultural heritage.\\n - Lunch at Tom Tom Bar \\u0026 Eatery: Enjoy city views.\\n- + **Evening**\\n - Walk around Viaduct Harbour: Vibrant waterfront stroll.\\n + \ - Dinner at Depot Eatery: Experience local cuisine.\\n\\n#### **Day 2: Exploring + the Bay of Islands**\\n- **Morning**\\n - Drive to Bay of Islands: Scenic + 3-hour journey.\\n - Take a Bay of Islands Cruise: Explore islands and marine + wildlife.\\n- **Afternoon**\\n - Lunch at The Gables Restaurant: Fresh local + seafood.\\n - Visit Waitangi Treaty Grounds: Learn about New Zealand's history.\\n- + **Evening**\\n - Return to Auckland.\\n - Dinner at The Glasshouse.\\n\\n#### + **Day 3: Wellington - The Capital**\\n- **Morning**\\n - Drive to Wellington: + Enjoy the scenic route.\\n- **Afternoon**\\n - Lunch at The Boatshed Cafe.\\n + \ - Visit Te Papa Tongarewa (Museum of New Zealand): Explore national history.\\n- + **Evening**\\n - Cable Car Ride to Kelburn: City views.\\n - Dinner at Logan + Brown: Fine dining.\\n\\n#### **Day 4: Nature and Culture in Wellington**\\n- + **Morning**\\n - Wellington Botanic Garden: Peaceful morning walk.\\n - + Explore Zealandia Ecosanctuary: Discover unique wildlife.\\n- **Afternoon**\\n + \ - Lunch at The Ramen Shop.\\n - Visit the National Portrait Gallery.\\n- + **Evening**\\n - Dinner at The Old Bailey.\\n\\n#### **Day 5: Travel to Queenstown**\\n- + **Early Morning**\\n - Fly from Wellington to Queenstown.\\n- **Morning**\\n + \ - Check into Center City Apartments.\\n - Skyline Gondola Ride: Panoramic + views.\\n- **Afternoon**\\n - Lunch at Stratosfare Restaurant: Mountain views.\\n + \ - Explore Queenstown Gardens.\\n- **Evening**\\n - Jet Boating on Lake + Wakatipu.\\n - Dinner at Fergburger.\\n\\n#### **Day 6: Adventure in Queenstown**\\n- + **Morning**\\n - \"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4669\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"694\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5363\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]}]},{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"SZQWdqnT86M=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458125576000\",\"endTimeUnixNano\":\"1763042460061974000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"933\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"956\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"LhJKSMoSSOA=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042460062781000\",\"endTimeUnixNano\":\"1763042461638134000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"j4A8EPQuGCg=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042461639066000\",\"endTimeUnixNano\":\"1763042463839211000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"800\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"850\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ULgV+UrP/qI=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463839867000\",\"endTimeUnixNano\":\"1763042466936364000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"rU40hFuwoTM=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463840073000\",\"endTimeUnixNano\":\"1763042466936520000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"t17Kam4h9+E=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466938646000\",\"endTimeUnixNano\":\"1763042470405151000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.completion.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.3.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"437\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"116\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"553\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"7g4u8KYJLAU=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406246000\",\"endTimeUnixNano\":\"1763042474022207000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"yCwOkiG7rZ4=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406582000\",\"endTimeUnixNano\":\"1763042474022257000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"suvbAlwFQxE=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406864000\",\"endTimeUnixNano\":\"1763042474022284000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"kK2HJo7iF1s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470407130000\",\"endTimeUnixNano\":\"1763042474022309000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"hqoFE9rpZHw=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042474023255000\",\"endTimeUnixNano\":\"1763042479037529000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2709\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"3q+1aP5st6s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042479037941000\",\"endTimeUnixNano\":\"1763042521886451000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xp8+s75qaoQ=\",\"parentSpanId\":\"LhJKSMoSSOA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042460566475000\",\"endTimeUnixNano\":\"1763042461631027000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xTNGMbJ8o4w=\",\"parentSpanId\":\"ULgV+UrP/qI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042464944178000\",\"endTimeUnixNano\":\"1763042466058265000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"cp8E6e04/1g=\",\"parentSpanId\":\"rU40hFuwoTM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466061655000\",\"endTimeUnixNano\":\"1763042466934165000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"vHsnrxC0dGw=\",\"parentSpanId\":\"7g4u8KYJLAU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042470916507000\",\"endTimeUnixNano\":\"1763042471857859000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"wieBZmgqMfE=\",\"parentSpanId\":\"yCwOkiG7rZ4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042471863066000\",\"endTimeUnixNano\":\"1763042472795187000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"KvPdWQGWzrM=\",\"parentSpanId\":\"suvbAlwFQxE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042472796856000\",\"endTimeUnixNano\":\"1763042473492982000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"YDcPBs0N6BQ=\",\"parentSpanId\":\"kK2HJo7iF1s=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042473499558000\",\"endTimeUnixNano\":\"1763042474021224000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Australia\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ZxRbtS6dkJI=\",\"parentSpanId\":\"3q+1aP5st6s=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042479555737000\",\"endTimeUnixNano\":\"1763042521884511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: culture, nature\\n- Weather: Current temperature is 7.5\xB0C and + overcast. Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected + on certain days.\\n- Destination Info: New Zealand is an island country in + the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the moderate budget level and culture, + nature interests.\\nEach day should have 3-5 activities with specific times, + locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbSAyeprdNroIr4yr884B5SquCIU0\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2320\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1726\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"594\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Exploring + the Wonders of New Zealand\\\",\\\"destination\\\":\\\"New Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + your rental car for the week.\\\"},{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into Accommodation\\\",\\\"location\\\":\\\"SkyCity Hotel\\\",\\\"notes\\\":\\\"Located + in the city center, convenient for exploring.\\\"},{\\\"time\\\":\\\"11:30 + AM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Auckland + Domain\\\",\\\"notes\\\":\\\"Explore New Zealand\u2019s cultural heritage + and natural history.\\\"},{\\\"time\\\":\\\"02:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"SkyCity\\\",\\\"notes\\\":\\\"Enjoy + a relaxing meal with views of the city.\\\"},{\\\"time\\\":\\\"03:30 PM\\\",\\\"activity\\\":\\\"Walk + around Viaduct Harbour\\\",\\\"location\\\":\\\"Viaduct Harbour\\\",\\\"notes\\\":\\\"Stroll + along the waterfront and enjoy the vibrant atmosphere.\\\"},{\\\"time\\\":\\\"06:30 + PM\\\",\\\"activity\\\":\\\"Dinner at Depot Eatery\\\",\\\"location\\\":\\\"Federal + Street, Auckland\\\",\\\"notes\\\":\\\"Experience local New Zealand cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"Dinner at Depot Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + the Bay of Islands\\\",\\\"activities\\\":[{\\\"time\\\":\\\"07:00 AM\\\",\\\"activity\\\":\\\"Drive + to Bay of Islands\\\",\\\"location\\\":\\\"Bay of Islands\\\",\\\"notes\\\":\\\"Approx. + 3 hours drive, enjoy scenic views on the way.\\\"},{\\\"time\\\":\\\"10:30 + AM\\\",\\\"activity\\\":\\\"Take a Bay of Islands Cruise\\\",\\\"location\\\":\\\"Paihia + Wharf\\\",\\\"notes\\\":\\\"Explore the stunning islands and spot marine wildlife.\\\"},{\\\"time\\\":\\\"01:00 + PM\\\",\\\"activity\\\":\\\"Lunch at The Gables Restaurant\\\",\\\"location\\\":\\\"Russell\\\",\\\"notes\\\":\\\"Try + fresh seafood and local dishes.\\\"},{\\\"time\\\":\\\"03:00 PM\\\",\\\"activity\\\":\\\"Visit + Waitangi Treaty Grounds\\\",\\\"location\\\":\\\"Waitangi\\\",\\\"notes\\\":\\\"Learn + about New Zealand's history and culture.\\\"},{\\\"time\\\":\\\"05:30 PM\\\",\\\"activity\\\":\\\"Return + to Auckland\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Relax + in the car or stop for coffee on the way.\\\"},{\\\"time\\\":\\\"07:3\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '89149' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/6ce0a0129015a826c7f54b78275cfe37 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"QM3dFI3l52g=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290335056000\",\"endTimeUnixNano\":\"1763042456116415000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"3iOop76o3Sw=\",\"parentSpanId\":\"QM3dFI3l52g=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290336958000\",\"endTimeUnixNano\":\"1763042456116320000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"BGNWa2Lx+H4=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290337931000\",\"endTimeUnixNano\":\"1763042291996182000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"58\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"523\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bpkI8o2juJI=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042291997852000\",\"endTimeUnixNano\":\"1763042294883864000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"FWUQD7dWK24=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042291998533000\",\"endTimeUnixNano\":\"1763042294884045000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"JxMUY8xtBSU=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042294885529000\",\"endTimeUnixNano\":\"1763042317534957000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"For + an adventurous trip, I've selected two destinations known for thrilling experiences: + **Chile** in South America and **Tajikistan** in Central Asia. Let's explore + these destinations further to plan your exciting itinerary.\\n\\n### Chile\\n- + **Capital**: Santiago\\n- **Language**: Spanish\\n- **Currency**: Chilean + Peso (CLP)\\n- **Time Zone**: UTC-06:00 to UTC-04:00\\n\\n### Tajikistan\\n- + **Capital**: Dushanbe\\n- **Language**: Tajik, Russian\\n- **Currency**: Tajikistani + Somoni (TJS)\\n- **Time Zone**: UTC+05:00\\n\\nI'll gather the weather information + and then craft a detailed itinerary for you.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"945\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"213\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1158\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"OnwfJc+G7eA=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042317535695000\",\"endTimeUnixNano\":\"1763042321467468000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"zVBafqJLSVU=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042317535898000\",\"endTimeUnixNano\":\"1763042321467528000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"t+rxwgGXbbg=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042321470042000\",\"endTimeUnixNano\":\"1763042324279616000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1194\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"92\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1286\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"cOiJesC5V+c=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042324280282000\",\"endTimeUnixNano\":\"1763042326821781000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"VHh495GUkl0=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042324280617000\",\"endTimeUnixNano\":\"1763042326822084000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"QcXOYcnb1as=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042326824312000\",\"endTimeUnixNano\":\"1763042328899504000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1518\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"58\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1576\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"q9X9jhj0kbo=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042328900052000\",\"endTimeUnixNano\":\"1763042332069522000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bKmi3eZoF9E=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042328900188000\",\"endTimeUnixNano\":\"1763042332069569000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"pQWL2XkRjNE=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042332070368000\",\"endTimeUnixNano\":\"1763042337546943000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418af3c8190b5314c9f212bff34\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418cdf8819087ab8a397842e1ba\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Santiago, Chile' info=DestinationInfo(title='Santiago', + summary='Capital and largest city of Chile', extract=\\\"Santiago, also known + as Santiago de Chile, is the capital and largest city of Chile and one of + the largest cities in the Americas. Located in the Chilean Central Valley, + it anchors its namesake Santiago Metropolitan Region representing 40% of Chile's + total population. Most of the city is situated between 500\u2013650\\\\xa0m + (1,640\u20132,133\\\\xa0ft) above sea level.\\\")\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.17.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Dushanbe, Tajikistan' info=DestinationInfo(title='Dushanbe', + summary='Capital and largest city of Tajikistan', extract='Dushanbe is the + capital and largest city of Tajikistan. As of February\\\\xa02023, Dushanbe + had a population of 1,228,400, with this population being largely Tajik. Until + 1929, the city was known in Russian as Dyushambe, and from 1929 to 1961 as + Stalinabad, after Joseph Stalin. Dushanbe is located in the Gissar Valley, + bounded by the Gissar Range in the north and east and the Babatag, Aktau, + Rangontau and Karatau mountains in the south, and has an elevation of 750\u2013930 + m. The city is divided into four districts: Ismail Samani, Avicenna, Ferdowsi, + and Shah Mansur.')\"}},{\"key\":\"gen_ai.prompt.17.tool_call_id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Santiago, + Chile\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 24\xB0C with partly cloudy conditions. Upcoming days will be + mostly clear with temperatures ranging from 26\xB0C to 34\xB0C.\\\",\\\"destination_details\\\":\\\"Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_VD4AdDcXmJyed5FWcjWG7Ikt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\\",\\\"destination_details\\\":\\\"Dushanbe + is the capital and largest city of Tajikistan. It is located in the Gissar + Valley, bounded by mountainous terrains, and has a population of over 1 million + people.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_lid7TRD6rOxaEhIq6ISjqGG2\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1702\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"288\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1990\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"/iqJRoiO3Hs=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042337548317000\",\"endTimeUnixNano\":\"1763042433336198000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"dQSecaXxjXM=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042337548704000\",\"endTimeUnixNano\":\"1763042433336329000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"Gic8k6ZyUjM=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042433338440000\",\"endTimeUnixNano\":\"1763042456109947000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418af3c8190b5314c9f212bff34\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418cdf8819087ab8a397842e1ba\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Santiago, Chile' info=DestinationInfo(title='Santiago', + summary='Capital and largest city of Chile', extract=\\\"Santiago, also known + as Santiago de Chile, is the capital and largest city of Chile and one of + the largest cities in the Americas. Located in the Chilean Central Valley, + it anchors its namesake Santiago Metropolitan Region representing 40% of Chile's + total population. Most of the city is situated between 500\u2013650\\\\xa0m + (1,640\u20132,133\\\\xa0ft) above sea level.\\\")\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.17.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Dushanbe, Tajikistan' info=DestinationInfo(title='Dushanbe', + summary='Capital and largest city of Tajikistan', extract='Dushanbe is the + capital and largest city of Tajikistan. As of February\\\\xa02023, Dushanbe + had a population of 1,228,400, with this population being largely Tajik. Until + 1929, the city was known in Russian as Dyushambe, and from 1929 to 1961 as + Stalinabad, after Joseph Stalin. Dushanbe is located in the Gissar Valley, + bounded by the Gissar Range in the north and east and the Babatag, Aktau, + Rangontau and Karatau mountains in the south, and has an elevation of 750\u2013930 + m. The city is divided into four districts: Ismail Samani, Avicenna, Ferdowsi, + and Shah Mansur.')\"}},{\"key\":\"gen_ai.prompt.17.tool_call_id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e41d98b08190a0e7d230b49ad8ac\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Santiago, + Chile\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 24\xB0C with partly cloudy conditions. Upcoming days will be + mostly clear with temperatures ranging from 26\xB0C to 34\xB0C.\\\",\\\"destination_details\\\":\\\"Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e41fb6448190bca146180572c7a7\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\\",\\\"destination_details\\\":\\\"Dushanbe + is the capital and largest city of Tajikistan. It is located in the Gissar + Valley, bounded by mountainous terrains, and has a population of over 1 million + people.\\\"}\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Santiago, Chile' itinerary=TravelItinerary(trip_title='Adventurous + Santiago: A 7-Day Exploration', destination='Santiago, Chile', duration_days=7, + total_budget_estimate='$800-$1000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Santiago', activities=[DayActivity(time='10:00 AM', activity='Arrive + at Santiago International Airport', location='Santiago International Airport', + notes='Pick up rental car or take a taxi to the accommodation.'), DayActivity(time='11:30 + AM', activity='Check-in to accommodation', location='Hotel Plaza El Bosque', + notes='Moderate budget, centrally located.'), DayActivity(time='1:00 PM', + activity='Lunch at Liguria', location='Liguria Restaurant', notes='Try the + local seafood dishes.'), DayActivity(time='3:00 PM', activity='Walk around + Plaza de Armas', location='Plaza de Armas', notes='Explore the historic heart + of Santiago.'), DayActivity(time='5:00 PM', activity='Visit Cerro Santa Lucia', + location='Cerro Santa Lucia', notes='Enjoy panoramic views of the city.')], + meals=['Lunch at Liguria', 'Dinner at La Piojera'], accommodation='Hotel Plaza + El Bosque'), DayPlan(day_number=2, date='2023-10-02', title='Cajon del Maipo + Adventure', activities=[DayActivity(time='8:00 AM', activity='Breakfast at + the hotel', location='Hotel Plaza El Bosque', notes='Enjoy a hearty breakfast.'), + DayActivity(time='9:00 AM', activity='Depart for Cajon del Maipo', location='Cajon + del Maipo', notes='A beautiful area for outdoor activities.'), DayActivity(time='10:30 + AM', activity='Hiking in the El Morado National Monument', location='El Morado', + notes='Moderate hike with stunning views.'), DayActivity(time='1:00 PM', activity='Picnic + lunch in nature', location='El Morado', notes='Pack a lunch to enjoy in the + outdoors.'), DayActivity(time='3:00 PM', activity='Visit Embalse El Yeso', + location='Embalse El Yeso', notes='Take photos and enjoy the scenery.'), DayActivity(time='5:00 + PM', activity='Return to Santiago', location='Santiago', notes='R\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_VD4AdDcXmJyed5FWcjWG7Ikt\"}},{\"key\":\"gen_ai.prompt.21.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.21.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Dushanbe, Tajikistan' itinerary=TravelItinerary(trip_title='Adventure + Awaits in Dushanbe', destination='Dushanbe, Tajikistan', duration_days=7, + total_budget_estimate='$700', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and City Exploration', activities=[DayActivity(time='09:00 + AM', activity='Arrive in Dushanbe', location='Dushanbe International Airport', + notes='Transfer to hotel via taxi or arranged pickup.'), DayActivity(time='10:30 + AM', activity='Check-in and freshen up', location='Hotel Atlas Dushanbe', + notes='Moderate hotel with good reviews.'), DayActivity(time='12:00 PM', activity='Lunch + at Restaurant Shodlik', location='Shodlik Restaurant', notes='Try local dishes + like Plov and Shashlik.'), DayActivity(time='01:30 PM', activity='Visit the + National Museum of Tajikistan', location='Dushanbe', notes='Explore Tajik + history and culture.'), DayActivity(time='03:30 PM', activity='Walk around + Rudaki Park', location='Rudaki Park', notes='Enjoy the greenery and relax.'), + DayActivity(time='06:00 PM', activity='Dinner at Restaurant Dushanbe', location='Restaurant + Dushanbe', notes='Known for traditional Tajik cuisine.')], meals=['Lunch at + Shodlik', 'Dinner at Restaurant Dushanbe'], accommodation='Hotel Atlas Dushanbe'), + DayPlan(day_number=2, date='2023-10-02', title='Adventure in the Mountains', + activities=[DayActivity(time='08:00 AM', activity='Breakfast at the hotel', + location='Hotel Atlas Dushanbe', notes='Start your day with a hearty breakfast.'), + DayActivity(time='09:00 AM', activity='Day trip to Fann Mountains', location='Fann + Mountains', notes='Hire a local guide for an adventure hike.'), DayActivity(time='12:30 + PM', activity='Picnic lunch at Alaudin Lakes', location='Alaudin Lakes', notes='Pack + lunch from the hotel.'), DayActivity(time='02:00 PM', activity='Hiking around + the lakes', location='Alaudin Lakes', notes='Enjoy stunning views and take + photos.'), DayActivity(time='05:00 PM', activity='Return to Dushanbe', location='Dushanbe',\"}},{\"key\":\"gen_ai.prompt.21.tool_call_id\",\"value\":{\"stringValue\":\"call_lid7TRD6rOxaEhIq6ISjqGG2\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are two thrilling itineraries tailor-made for your adventurous spirit. You + can choose between Santiago, Chile, known for its vibrant city life and stunning + natural landscapes, or Dushanbe, Tajikistan, offering untouched natural beauty + and rich cultural experiences.\\n\\n### Santiago, Chile: Adventurous Exploration + (7 Days)\\n**Highlights:**\\n- Explore vibrant city life in Santiago, including + cultural sites like Plaza de Armas and Cerro Santa Lucia.\\n- Experience the + thrill of hiking in Cajon del Maipo and El Morado National Monument.\\n- Enjoy + a day trip to colorful Valparaiso.\\n- Taste Chilean wines on a Maipo Valley + wine tour.\\n- Adventure in the Andes Mountains with skiing or hiking.\\n\\n**Estimated + Budget:** $800-$1000\\n\\n**Travel Tips:** Learn some basic Spanish phrases, + and always carry water for outdoor activities.\\n\\n**Packing Suggestions:** + Lightweight clothing, comfortable hiking shoes, and sun protection.\\n\\n### + Dushanbe, Tajikistan: Adventure in Nature (7 Days)\\n**Highlights:**\\n- Discover + Dushanbe's cultural sites, including the National Museum and Rudaki Park.\\n- + Embark on an adventurous day in the Fann Mountains with hiking and exploring + the Alaudin Lakes.\\n- Enjoy rafting and hiking in Varzob Valley.\\n- Trek + in the majestic Pamir Mountains to Lake Sarez.\\n\\n**Estimated Budget:** + $700\\n\\n**Travel Tips:** Learn basic Tajik phrases, carry cash, and respect + local traditions.\\n\\n**Packing Suggestions:** Lightweight, layered clothing, + comfortable hiking shoes, and sunscreen.\\n\\nBoth itineraries promise adventure + and memorable experiences. Let me know if you have any preferences or need + further assistance!\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"7540\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"333\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7873\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"flp6zhR87z8=\",\"parentSpanId\":\"bpkI8o2juJI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042292502514000\",\"endTimeUnixNano\":\"1763042293711707000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Asia\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"8pVEfcKzjl0=\",\"parentSpanId\":\"FWUQD7dWK24=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042293718002000\",\"endTimeUnixNano\":\"1763042294872800000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"r7fWWieyOBU=\",\"parentSpanId\":\"OnwfJc+G7eA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042318640277000\",\"endTimeUnixNano\":\"1763042320464533000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Santiago%2C+Chile\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"HtDo/cYr/Zg=\",\"parentSpanId\":\"zVBafqJLSVU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042320470625000\",\"endTimeUnixNano\":\"1763042321464327000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Dushanbe%2C+Tajikistan\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"Vk5JbW85DaI=\",\"parentSpanId\":\"cOiJesC5V+c=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042324782420000\",\"endTimeUnixNano\":\"1763042325888098000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-33.4377756\\u0026longitude=-70.6504502\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bvgm7G6N5UQ=\",\"parentSpanId\":\"VHh495GUkl0=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042325892104000\",\"endTimeUnixNano\":\"1763042326819385000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=38.5856814\\u0026longitude=68.760331\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"k4ESLnjIntM=\",\"parentSpanId\":\"q9X9jhj0kbo=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042329402505000\",\"endTimeUnixNano\":\"1763042329932028000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Santiago,%20Chile\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"OPn/NLRb7OU=\",\"parentSpanId\":\"bKmi3eZoF9E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042329932776000\",\"endTimeUnixNano\":\"1763042332067863000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Dushanbe,%20Tajikistan\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"7BjV1KWqCGg=\",\"parentSpanId\":\"/iqJRoiO3Hs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042338068561000\",\"endTimeUnixNano\":\"1763042378358074000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Santiago, + Chile.\\n\\nTrip Details:\\n- Destination: Santiago, Chile\\n- Duration: 7 + days\\n- Budget: moderate\\n- Interests: adventure\\n- Weather: Current temperature + is 24\xB0C with partly cloudy conditions. Upcoming days will be mostly clear + with temperatures ranging from 26\xB0C to 34\xB0C.\\n- Destination Info: Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and adventure interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS8gIwmKuNXg8IbIbSADLWloOWdb\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2336\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1737\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"599\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Adventurous + Santiago: A 7-Day Exploration\\\",\\\"destination\\\":\\\"Santiago, Chile\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$800-$1000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Santiago\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Santiago International Airport\\\",\\\"location\\\":\\\"Santiago International + Airport\\\",\\\"notes\\\":\\\"Pick up rental car or take a taxi to the accommodation.\\\"},{\\\"time\\\":\\\"11:30 + AM\\\",\\\"activity\\\":\\\"Check-in to accommodation\\\",\\\"location\\\":\\\"Hotel + Plaza El Bosque\\\",\\\"notes\\\":\\\"Moderate budget, centrally located.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Liguria\\\",\\\"location\\\":\\\"Liguria + Restaurant\\\",\\\"notes\\\":\\\"Try the local seafood dishes.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Walk around Plaza de Armas\\\",\\\"location\\\":\\\"Plaza + de Armas\\\",\\\"notes\\\":\\\"Explore the historic heart of Santiago.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Visit Cerro Santa Lucia\\\",\\\"location\\\":\\\"Cerro + Santa Lucia\\\",\\\"notes\\\":\\\"Enjoy panoramic views of the city.\\\"}],\\\"meals\\\":[\\\"Lunch + at Liguria\\\",\\\"Dinner at La Piojera\\\"],\\\"accommodation\\\":\\\"Hotel + Plaza El Bosque\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Cajon + del Maipo Adventure\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Hotel Plaza El Bosque\\\",\\\"notes\\\":\\\"Enjoy + a hearty breakfast.\\\"},{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Depart + for Cajon del Maipo\\\",\\\"location\\\":\\\"Cajon del Maipo\\\",\\\"notes\\\":\\\"A + beautiful area for outdoor activities.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Hiking + in the El Morado National Monument\\\",\\\"location\\\":\\\"El Morado\\\",\\\"notes\\\":\\\"Moderate + hike with stunning views.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Picnic + lunch in nature\\\",\\\"location\\\":\\\"El Morado\\\",\\\"notes\\\":\\\"Pack + a lunch to enjoy in the outdoors.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + Embalse El Yeso\\\",\\\"location\\\":\\\"Embalse El Yeso\\\",\\\"notes\\\":\\\"Take + photos and enjoy the scenery.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to Santiago\\\",\\\"location\\\":\\\"Santiago\\\",\\\"notes\\\":\\\"Relax + after a day of adventure.\\\"}],\\\"meals\\\":[\\\"Breakfast at the hotel\\\",\\\"Picnic + lunch\\\",\\\"Dinner at Los Buenos Muchachos\\\"],\\\"accommodation\\\":\\\"Hotel + Plaza El Bosque\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"cioloVIWits=\",\"parentSpanId\":\"dQSecaXxjXM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042378370827000\",\"endTimeUnixNano\":\"1763042433334128000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Dushanbe, + Tajikistan.\\n\\nTrip Details:\\n- Destination: Dushanbe, Tajikistan\\n- Duration: + 7 days\\n- Budget: moderate\\n- Interests: adventure\\n- Weather: Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\n- + Destination Info: Dushanbe is the capital and largest city of Tajikistan. + It is located in the Gissar Valley, bounded by mountainous terrains, and has + a population of over 1 million people.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and adventure interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS9Lz3AjDms2dEht5anB36agIYPs\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2499\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1923\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"576\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Adventure + Awaits in Dushanbe\\\",\\\"destination\\\":\\\"Dushanbe, Tajikistan\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$700\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and City Exploration\\\",\\\"activities\\\":[{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Dushanbe\\\",\\\"location\\\":\\\"Dushanbe International Airport\\\",\\\"notes\\\":\\\"Transfer + to hotel via taxi or arranged pickup.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Check-in + and freshen up\\\",\\\"location\\\":\\\"Hotel Atlas Dushanbe\\\",\\\"notes\\\":\\\"Moderate + hotel with good reviews.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Restaurant Shodlik\\\",\\\"location\\\":\\\"Shodlik Restaurant\\\",\\\"notes\\\":\\\"Try + local dishes like Plov and Shashlik.\\\"},{\\\"time\\\":\\\"01:30 PM\\\",\\\"activity\\\":\\\"Visit + the National Museum of Tajikistan\\\",\\\"location\\\":\\\"Dushanbe\\\",\\\"notes\\\":\\\"Explore + Tajik history and culture.\\\"},{\\\"time\\\":\\\"03:30 PM\\\",\\\"activity\\\":\\\"Walk + around Rudaki Park\\\",\\\"location\\\":\\\"Rudaki Park\\\",\\\"notes\\\":\\\"Enjoy + the greenery and relax.\\\"},{\\\"time\\\":\\\"06:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Restaurant Dushanbe\\\",\\\"location\\\":\\\"Restaurant Dushanbe\\\",\\\"notes\\\":\\\"Known + for traditional Tajik cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Shodlik\\\",\\\"Dinner + at Restaurant Dushanbe\\\"],\\\"accommodation\\\":\\\"Hotel Atlas Dushanbe\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Adventure + in the Mountains\\\",\\\"activities\\\":[{\\\"time\\\":\\\"08:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Hotel Atlas Dushanbe\\\",\\\"notes\\\":\\\"Start + your day with a hearty breakfast.\\\"},{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Day + trip to Fann Mountains\\\",\\\"location\\\":\\\"Fann Mountains\\\",\\\"notes\\\":\\\"Hire + a local guide for an adventure hike.\\\"},{\\\"time\\\":\\\"12:30 PM\\\",\\\"activity\\\":\\\"Picnic + lunch at Alaudin Lakes\\\",\\\"location\\\":\\\"Alaudin Lakes\\\",\\\"notes\\\":\\\"Pack + lunch from the hotel.\\\"},{\\\"time\\\":\\\"02:00 PM\\\",\\\"activity\\\":\\\"Hiking + around the lakes\\\",\\\"location\\\":\\\"Alaudin Lakes\\\",\\\"notes\\\":\\\"Enjoy + stunning views and take photos.\\\"},{\\\"time\\\":\\\"05:00 PM\\\",\\\"activity\\\":\\\"Return + to Dushanbe\\\",\\\"location\\\":\\\"Dushanbe\\\",\\\"notes\\\":\\\"Relax + after an adventurous day.\\\"},{\\\"time\\\":\\\"07:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Kebab House\\\",\\\"location\\\":\\\"Kebab House\\\",\\\"notes\\\":\\\"Savor + delicious kebabs and local drinks.\\\"}],\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '133017' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/b37b4c7727a54482f8c71cb88799c108 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"X6XgDzvu2/o=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214208334000\",\"endTimeUnixNano\":\"1763042288332434000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ykfIkleyfn8=\",\"parentSpanId\":\"X6XgDzvu2/o=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214208605000\",\"endTimeUnixNano\":\"1763042288332353000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"JhAH0yZx3Ik=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214215610000\",\"endTimeUnixNano\":\"1763042217450079000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"928\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"21\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"949\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"7Pd25D1LOvw=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042217450618000\",\"endTimeUnixNano\":\"1763042219069521000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"Un2+PGYQ9to=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042219072031000\",\"endTimeUnixNano\":\"1763042221139663000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1456\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"19\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1475\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"IbK2qPHFUEU=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042221140625000\",\"endTimeUnixNano\":\"1763042223209324000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"f1ybKu8yoWY=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042223210273000\",\"endTimeUnixNano\":\"1763042226350110000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1544\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"36\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1580\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"Mix/K/BkE/k=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042226350768000\",\"endTimeUnixNano\":\"1763042227769106000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ZIkq2QIEfJc=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042227770300000\",\"endTimeUnixNano\":\"1763042229857312000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1862\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"19\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1881\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"th//dB4A1jI=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042229857982000\",\"endTimeUnixNano\":\"1763042230935832000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"rnS972TaPFE=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042230937025000\",\"endTimeUnixNano\":\"1763042234891211000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b5b6d48194ac4ff233dc086dc6\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Bratislava' info=DestinationInfo(title='Bratislava', + summary='Capital and largest city of Slovakia', extract='Bratislava is the + capital and largest city of the Slovak Republic and the fourth largest of + all cities on the river Danube. Officially, the population of the city is + about 475,000; however, some sources estimate the daily number of people moving + around the city based on mobile phone SIM cards is more than 570,000. Bratislava + is in southwestern Slovakia at the foot of the Little Carpathians, occupying + both banks of the Danube and the left bank of the River Morava. The city is + situated on the border of three countries\u2014Slovakia, Austria, and Hungary\u2014and + is the only national capital to have land borders with two other sovereign + states. Its geographic position places it exceptionally close to the Austrian + capital Vienna, making them the closest pair of capital cities in Europe at + just 50 kilometres (31\\\\xa0mi) apart.')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"cultural + exploration, history, local cuisine\\\",\\\"weather_info\\\":\\\"Current temperature + is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\\",\\\"destination_details\\\":\\\"Bratislava is the + capital and largest city of Slovakia, known for its location by the Danube + River and proximity to Austria and Hungary. It's an important cultural, economic, + and educational center of the region.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_Ka1nJGRoPHD4PU7UUYNV3Gpi\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2097\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"136\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2233\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"4+Xf2IVfm8g=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042234891664000\",\"endTimeUnixNano\":\"1763042274301203000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"tlKdJZeE6c0=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042274303621000\",\"endTimeUnixNano\":\"1763042288331400000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b5b6d48194ac4ff233dc086dc6\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Bratislava' info=DestinationInfo(title='Bratislava', + summary='Capital and largest city of Slovakia', extract='Bratislava is the + capital and largest city of the Slovak Republic and the fourth largest of + all cities on the river Danube. Officially, the population of the city is + about 475,000; however, some sources estimate the daily number of people moving + around the city based on mobile phone SIM cards is more than 570,000. Bratislava + is in southwestern Slovakia at the foot of the Little Carpathians, occupying + both banks of the Danube and the left bank of the River Morava. The city is + situated on the border of three countries\u2014Slovakia, Austria, and Hungary\u2014and + is the only national capital to have land borders with two other sovereign + states. Its geographic position places it exceptionally close to the Austrian + capital Vienna, making them the closest pair of capital cities in Europe at + just 50 kilometres (31\\\\xa0mi) apart.')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b8467481948a834b801a722259\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"cultural + exploration, history, local cuisine\\\",\\\"weather_info\\\":\\\"Current temperature + is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\\",\\\"destination_details\\\":\\\"Bratislava is the + capital and largest city of Slovakia, known for its location by the Danube + River and proximity to Austria and Hungary. It's an important cultural, economic, + and educational center of the region.\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 5-day itinerary for Bratislava' itinerary=TravelItinerary(trip_title='Cultural + Journey Through Bratislava', destination='Bratislava', duration_days=5, total_budget_estimate='$800', + daily_plans=[DayPlan(day_number=1, date='2023-11-15', title='Arrival and Old + Town Exploration', activities=[DayActivity(time='10:00 AM', activity='Arrive + in Bratislava', location='Bratislava Airport', notes='Take a taxi or shuttle + to the city center.'), DayActivity(time='11:30 AM', activity='Check-in to + accommodation', location='Hotel Danubia', notes='Moderate hotel near the city + center.'), DayActivity(time='12:30 PM', activity='Lunch at Slovak Pub', location='Obchodn\xE1 + 62', notes='Try traditional Slovak dishes like bryndzov\xE9 halu\u0161ky.'), + DayActivity(time='2:00 PM', activity='Stroll through the Old Town', location='Bratislava + Old Town', notes=\\\"Visit St. Michael's Gate, Main Square, and the Old Town + Hall.\\\"), DayActivity(time='4:00 PM', activity='Visit the Bratislava City + Museum', location='Radni\u010Dn\xE1 1', notes=\\\"Learn about the city's history.\\\"), + DayActivity(time='6:00 PM', activity='Dinner at Flagship Restaurant', location='Hlavn\xE9 + n\xE1mestie 4', notes='Enjoy local cuisine with a modern twist.')], meals=['Lunch + at Slovak Pub', 'Dinner at Flagship Restaurant'], accommodation='Hotel Danubia'), + DayPlan(day_number=2, date='2023-11-16', title='Castles and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at hotel', location='Hotel Danubia', notes='Enjoy + a complimentary breakfast.'), DayActivity(time='9:30 AM', activity='Visit + Bratislava Castle', location='Bratislava Castle', notes='Explore the castle + and enjoy views of the Danube.'), DayActivity(time='12:00 PM', activity='Lunch + at Caf\xE9 23', location='Karpatsk\xE1 23', notes='A trendy caf\xE9 with local + dishes.'), DayActivity(time='1:30 PM', activity='Tour the Slovak National + Gallery', location='R\xE1zusovo n\xE1bre\u017Eie 2', notes='Explore Slovak + art and culture.'), DayActivity(time='4:00 PM', activity='Relax at Sad Janka + Kr\xE1\u013Ea park', location='\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_Ka1nJGRoPHD4PU7UUYNV3Gpi\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"I've + planned a 5-day cultural journey to Bratislava, Slovakia for you. Here's your + itinerary:\\n\\n### Cultural Journey Through Bratislava\\n\\n#### **Day 1: + Arrival and Old Town Exploration**\\n- **10:00 AM:** Arrive in Bratislava + - Shuttle or taxi to city center.\\n- **11:30 AM:** Check-in to Hotel Danubia.\\n- + **12:30 PM:** Lunch at Slovak Pub - Try bryndzov\xE9 halu\u0161ky.\\n- **2:00 + PM:** Stroll through the Old Town - Visit St. Michael's Gate.\\n- **4:00 PM:** + Visit the Bratislava City Museum.\\n- **6:00 PM:** Dinner at Flagship Restaurant.\\n\\n#### + **Day 2: Castles and Culture**\\n- **8:00 AM:** Breakfast at Hotel Danubia.\\n- + **9:30 AM:** Visit Bratislava Castle - Great views of the Danube.\\n- **12:00 + PM:** Lunch at Caf\xE9 23.\\n- **1:30 PM:** Tour the Slovak National Gallery.\\n- + **4:00 PM:** Relax at Sad Janka Kr\xE1\u013Ea park.\\n- **7:00 PM:** Dinner + at Modr\xE1 Hviezda.\\n\\n#### **Day 3: Day Trip to Devin Castle**\\n- **8:00 + AM:** Breakfast at Hotel Danubia.\\n- **9:30 AM:** Travel to Devin Castle.\\n- + **10:00 AM:** Explore Devin Castle.\\n- **12:30 PM:** Lunch at Restaurant + Devin.\\n- **2:00 PM:** Return to Bratislava.\\n- **3:00 PM:** Visit the Blue + Church.\\n- **5:00 PM:** Free time in Old Town.\\n- **7:00 PM:** Dinner at + U Zlateho Hruska.\\n\\n#### **Day 4: Art and History**\\n- **8:00 AM:** Breakfast + at Hotel Danubia.\\n- **9:30 AM:** Visit the Museum of Jewish Culture.\\n- + **11:30 AM:** Explore the Bratislava City Gallery.\\n- **1:00 PM:** Lunch + at Urban House.\\n- **3:00 PM:** Visit the Presidential Palace.\\n- **5:00 + PM:** Dinner at Primi.\\n\\n#### **Day 5: Departure and Local Markets**\\n- + **8:00 AM:** Breakfast at Hotel Danubia.\\n- **9:30 AM:** Visit the Old Market + Hall.\\n- **11:00 AM:** Free time for shopping.\\n- **1:00 PM:** Lunch at + the market.\\n- **2:30 PM:** Check-out from hotel.\\n- **3:00 PM:** Transfer + to airport.\\n\\n### Travel Tips\\n- Use public transport for getting around + the city.\\n- Carry an umbrella or rain jacket for rain on November 17 and + 19.\\n- Learn basic Slovak phrases to enhance local interactions.\\n\\n### + Packing Suggestions\\n- Warm clothing layers and comfortable walk\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"3764\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"608\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4372\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ga2ddWDpwj0=\",\"parentSpanId\":\"7Pd25D1LOvw=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042217954037000\",\"endTimeUnixNano\":\"1763042219061913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"qlkYoPsmsxQ=\",\"parentSpanId\":\"IbK2qPHFUEU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042222244554000\",\"endTimeUnixNano\":\"1763042223207393000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Bratislava\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"OxRjSied6Tk=\",\"parentSpanId\":\"Mix/K/BkE/k=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042226855593000\",\"endTimeUnixNano\":\"1763042227766872000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=48.1516988\\u0026longitude=17.1093063\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"hMj8FLIUcPo=\",\"parentSpanId\":\"th//dB4A1jI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042230364285000\",\"endTimeUnixNano\":\"1763042230934612000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Bratislava\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"kUQ5JjMwU3s=\",\"parentSpanId\":\"4+Xf2IVfm8g=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042235404005000\",\"endTimeUnixNano\":\"1763042274299868000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 5-day itinerary for Bratislava.\\n\\nTrip + Details:\\n- Destination: Bratislava\\n- Duration: 5 days\\n- Budget: moderate\\n- + Interests: cultural exploration, history, local cuisine\\n- Weather: Current + temperature is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\n- Destination Info: Bratislava is the capital and + largest city of Slovakia, known for its location by the Danube River and proximity + to Austria and Hungary. It's an important cultural, economic, and educational + center of the region.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and cultural exploration, history, local cuisine + interests.\\nEach day should have 3-5 activities with specific times, locations, + and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS72PQr8E6ISNBF6AHyK4FMvQhCE\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2032\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1443\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"589\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Cultural + Journey Through Bratislava\\\",\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"total_budget_estimate\\\":\\\"$800\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-15\\\",\\\"title\\\":\\\"Arrival + and Old Town Exploration\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Bratislava\\\",\\\"location\\\":\\\"Bratislava Airport\\\",\\\"notes\\\":\\\"Take + a taxi or shuttle to the city center.\\\"},{\\\"time\\\":\\\"11:30 AM\\\",\\\"activity\\\":\\\"Check-in + to accommodation\\\",\\\"location\\\":\\\"Hotel Danubia\\\",\\\"notes\\\":\\\"Moderate + hotel near the city center.\\\"},{\\\"time\\\":\\\"12:30 PM\\\",\\\"activity\\\":\\\"Lunch + at Slovak Pub\\\",\\\"location\\\":\\\"Obchodn\xE1 62\\\",\\\"notes\\\":\\\"Try + traditional Slovak dishes like bryndzov\xE9 halu\u0161ky.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Stroll through the Old Town\\\",\\\"location\\\":\\\"Bratislava + Old Town\\\",\\\"notes\\\":\\\"Visit St. Michael's Gate, Main Square, and + the Old Town Hall.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Visit + the Bratislava City Museum\\\",\\\"location\\\":\\\"Radni\u010Dn\xE1 1\\\",\\\"notes\\\":\\\"Learn + about the city's history.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Flagship Restaurant\\\",\\\"location\\\":\\\"Hlavn\xE9 n\xE1mestie 4\\\",\\\"notes\\\":\\\"Enjoy + local cuisine with a modern twist.\\\"}],\\\"meals\\\":[\\\"Lunch at Slovak + Pub\\\",\\\"Dinner at Flagship Restaurant\\\"],\\\"accommodation\\\":\\\"Hotel + Danubia\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-16\\\",\\\"title\\\":\\\"Castles + and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at hotel\\\",\\\"location\\\":\\\"Hotel Danubia\\\",\\\"notes\\\":\\\"Enjoy + a complimentary breakfast.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Bratislava Castle\\\",\\\"location\\\":\\\"Bratislava Castle\\\",\\\"notes\\\":\\\"Explore + the castle and enjoy views of the Danube.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Caf\xE9 23\\\",\\\"location\\\":\\\"Karpatsk\xE1 23\\\",\\\"notes\\\":\\\"A + trendy caf\xE9 with local dishes.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Tour + the Slovak National Gallery\\\",\\\"location\\\":\\\"R\xE1zusovo n\xE1bre\u017Eie + 2\\\",\\\"notes\\\":\\\"Explore Slovak art and culture.\\\"},{\\\"time\\\":\\\"4:00 + PM\\\",\\\"activity\\\":\\\"Relax at Sad Janka Kr\xE1\u013Ea park\\\",\\\"location\\\":\\\"Sad + Janka Kr\xE1\u013Ea\\\",\\\"notes\\\":\\\"Enjoy nature and views of the Danube.\\\"},{\\\"time\\\":\\\"7:00 + PM\\\",\\\"activity\\\":\\\"Dinner at Modr\xE1 Hviezda\\\",\\\"location\\\":\\\"Hradn\xE9 + n\xE1mestie 2\\\",\\\"notes\\\":\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '86232' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/42ff472d7feb6215bec0cf4e350675b2 + response: + body: + string: '{"batches":[{"resource":{"attributes":[{"key":"telemetry.sdk.language","value":{"stringValue":"python"}},{"key":"telemetry.sdk.name","value":{"stringValue":"opentelemetry"}},{"key":"telemetry.sdk.version","value":{"stringValue":"1.38.0"}},{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},"scopeSpans":[{"scope":{"name":"opentelemetry.instrumentation.openai_agents","version":"0.47.5"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"NPzxuz+vo54=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187236891000","endTimeUnixNano":"1763042189460181000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"gen_ai.prompt.0.role","value":{"stringValue":"user"}},{"key":"gen_ai.prompt.0.content","value":{"stringValue":"I + want to visit New York for 7 days with a moderate budget. I love history. + Create me an itinerary."}},{"key":"llm.request.functions.0.name","value":{"stringValue":"search_destinations"}},{"key":"llm.request.functions.0.description","value":{"stringValue":"Search + for travel destinations by region or subregion using REST Countries API."}},{"key":"llm.request.functions.0.parameters","value":{"stringValue":"{\"properties\": + {\"region\": {\"default\": \"\", \"description\": \"Region to search (e.g., + \\\"Europe\\\", \\\"Asia\\\", \\\"Americas\\\")\", \"title\": \"Region\", + \"type\": \"string\"}, \"subregion\": {\"default\": \"\", \"description\": + \"Subregion to search (e.g., \\\"Southern Europe\\\", \\\"Southeast Asia\\\")\", + \"title\": \"Subregion\", \"type\": \"string\"}}, \"title\": \"search_destinations_args\", + \"type\": \"object\", \"additionalProperties\": false, \"required\": [\"region\", + \"subregion\"]}"}},{"key":"llm.request.functions.1.name","value":{"stringValue":"get_location_coordinates"}},{"key":"llm.request.functions.1.description","value":{"stringValue":"Get + coordinates for a location using Nominatim (OpenStreetMap) API."}},{"key":"llm.request.functions.1.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the city or location\", \"title\": + \"Location Name\", \"type\": \"string\"}}, \"required\": [\"location_name\"], + \"title\": \"get_location_coordinates_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.2.name","value":{"stringValue":"get_weather_forecast"}},{"key":"llm.request.functions.2.description","value":{"stringValue":"Get + current weather and 7-day forecast using Open-Meteo API (no API key required)."}},{"key":"llm.request.functions.2.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the location\", \"title\": + \"Location Name\", \"type\": \"string\"}, \"latitude\": {\"description\": + \"Latitude coordinate\", \"title\": \"Latitude\", \"type\": \"number\"}, \"longitude\": + {\"description\": \"Longitude coordinate\", \"title\": \"Longitude\", \"type\": + \"number\"}}, \"required\": [\"location_name\", \"latitude\", \"longitude\"], + \"title\": \"get_weather_forecast_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.3.name","value":{"stringValue":"get_destination_info"}},{"key":"llm.request.functions.3.description","value":{"stringValue":"Get + information about a destination from Wikipedia API."}},{"key":"llm.request.functions.3.parameters","value":{"stringValue":"{\"properties\": + {\"destination_name\": {\"description\": \"Name of the destination\", \"title\": + \"Destination Name\", \"type\": \"string\"}}, \"required\": [\"destination_name\"], + \"title\": \"get_destination_info_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.4.name","value":{"stringValue":"calculate_travel_distance"}},{"key":"llm.request.functions.4.description","value":{"stringValue":"Calculate + distance and estimated flight time between two locations.\nUses Haversine + formula for distance calculation."}},{"key":"llm.request.functions.4.parameters","value":{"stringValue":"{\"properties\": + {\"from_location\": {\"description\": \"Starting location name\", \"title\": + \"From Location\", \"type\": \"string\"}, \"to_location\": {\"description\": + \"Destination location name\", \"title\": \"To Location\", \"type\": \"string\"}, + \"from_lat\": {\"description\": \"Starting latitude\", \"title\": \"From Lat\", + \"type\": \"number\"}, \"from_lon\": {\"description\": \"Starting longitude\", + \"title\": \"From Lon\", \"type\": \"number\"}, \"to_lat\": {\"description\": + \"Destination latitude\", \"title\": \"To Lat\", \"type\": \"number\"}, \"to_lon\": + {\"description\": \"Destination longitude\", \"title\": \"To Lon\", \"type\": + \"number\"}}, \"required\": [\"from_location\", \"to_location\", \"from_lat\", + \"from_lon\", \"to_lat\", \"to_lon\"], \"title\": \"calculate_travel_distance_args\", + \"type\": \"object\", \"additionalProperties\": false}"}},{"key":"llm.request.functions.5.name","value":{"stringValue":"create_itinerary"}},{"key":"llm.request.functions.5.description","value":{"stringValue":"Create + a detailed day-by-day travel itinerary using AI."}},{"key":"llm.request.functions.5.parameters","value":{"stringValue":"{\"properties\": + {\"destination\": {\"description\": \"Main destination for the trip\", \"title\": + \"Destination\", \"type\": \"string\"}, \"duration_days\": {\"description\": + \"Number of days for the trip\", \"title\": \"Duration Days\", \"type\": \"integer\"}, + \"budget\": {\"description\": \"Budget level (budget, moderate, luxury)\", + \"title\": \"Budget\", \"type\": \"string\"}, \"interests\": {\"description\": + \"Traveler interests (e.g., food, history, nature)\", \"title\": \"Interests\", + \"type\": \"string\"}, \"weather_info\": {\"default\": \"\", \"description\": + \"Weather forecast information (optional)\", \"title\": \"Weather Info\", + \"type\": \"string\"}, \"destination_details\": {\"default\": \"\", \"description\": + \"Additional destination details (optional)\", \"title\": \"Destination Details\", + \"type\": \"string\"}}, \"required\": [\"destination\", \"duration_days\", + \"budget\", \"interests\", \"weather_info\", \"destination_details\"], \"title\": + \"create_itinerary_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"gen_ai.request.temperature","value":{"doubleValue":1}},{"key":"gen_ai.request.top_p","value":{"doubleValue":1}},{"key":"gen_ai.request.model","value":{"stringValue":"gpt-4o-2024-08-06"}},{"key":"gen_ai.completion.0.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.0.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.0.tool_calls.0.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.0.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\"}"}},{"key":"gen_ai.completion.0.tool_calls.0.id","value":{"stringValue":"call_M6Cz1ZtgBBRVhPAKwGhP4HkH"}},{"key":"gen_ai.completion.1.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.1.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.1.tool_calls.0.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.1.tool_calls.0.arguments","value":{"stringValue":"{\"destination_name\":\"New + York\"}"}},{"key":"gen_ai.completion.1.tool_calls.0.id","value":{"stringValue":"call_XjU0qIs2w9toMdl7I78qNPRd"}},{"key":"gen_ai.completion.2.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.2.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.2.tool_calls.0.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.2.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\",\"latitude\":40.7128,\"longitude\":-74.006}"}},{"key":"gen_ai.completion.2.tool_calls.0.id","value":{"stringValue":"call_vW1iVMpxm4W5VAjz3uvhFwxl"}},{"key":"gen_ai.usage.prompt_tokens","value":{"intValue":"313"}},{"key":"gen_ai.usage.completion_tokens","value":{"intValue":"81"}},{"key":"llm.usage.total_tokens","value":{"intValue":"394"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Jn+55BUIsg8=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042192790536000","endTimeUnixNano":"1763042197342144000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"qUtAVv3MWrg=","parentSpanId":"i9g02JupVjo=","name":"Travel + Planner Agent.agent","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187234430000","endTimeUnixNano":"1763042197342199000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"agent"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"i9g02JupVjo=","name":"Agent + Workflow","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187232503000","endTimeUnixNano":"1763042197342213000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"workflow"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.workflow.name","value":{"stringValue":"Agent + Workflow"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"ndtaGw2O47w=","parentSpanId":"qUtAVv3MWrg=","name":"get_destination_info.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461414000","endTimeUnixNano":"1763042192787831000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"lAvl8cSGCdQ=","parentSpanId":"qUtAVv3MWrg=","name":"get_weather_forecast.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461614000","endTimeUnixNano":"1763042192787979000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"DRPQ4fXYGOk=","parentSpanId":"qUtAVv3MWrg=","name":"get_location_coordinates.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461045000","endTimeUnixNano":"1763042192788272000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}}]},{"scope":{"name":"opentelemetry.instrumentation.requests","version":"0.59b0"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"gvjOX9XKnIQ=","parentSpanId":"ndtaGw2O47w=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042189966888000","endTimeUnixNano":"1763042190649032000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://en.wikipedia.org/api/rest_v1/page/summary/New%20York"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Vd7J6WeIkI0=","parentSpanId":"lAvl8cSGCdQ=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042190650755000","endTimeUnixNano":"1763042191744238000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://api.open-meteo.com/v1/forecast?latitude=40.7128\u0026longitude=-74.006\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\u0026timezone=auto\u0026forecast_days=7"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"QO7ZImsbB1g=","parentSpanId":"DRPQ4fXYGOk=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042191747300000","endTimeUnixNano":"1763042192786263000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://nominatim.openstreetmap.org/search?q=New+York\u0026format=json\u0026limit=1"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}}]}]}]}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '14143' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/9a8cb895bee63fabb705329a05ced33b + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"VVGqP3Zlh/I=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057714246000\",\"endTimeUnixNano\":\"1763042185226841000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ebIwige/t/I=\",\"parentSpanId\":\"VVGqP3Zlh/I=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057715150000\",\"endTimeUnixNano\":\"1763042185226760000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"XmMF4QV1t5I=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042160420265000\",\"endTimeUnixNano\":\"1763042185224042000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31f412c8193854f3d40a67569bb\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3203a048193a1db4cd095de78a1\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.19.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Malta' itinerary=TravelItinerary(trip_title='Malta: + A Luxurious Journey Through History and Culture', destination='Malta', duration_days=7, + total_budget_estimate='\u20AC5000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Valletta', activities=[DayActivity(time='10:00 AM', activity='Check + into the hotel.', location='Palazzo Consiglia, Valletta', notes='Luxurious + boutique hotel with a historic feel.'), DayActivity(time='12:00 PM', activity='Lunch + at the hotel restaurant.', location='Palazzo Consiglia', notes='Try local + specialties.'), DayActivity(time='2:00 PM', activity='Explore Valletta on + foot.', location='Valletta', notes=\\\"Visit St. John's Co-Cathedral and the + Upper Barracca Gardens.\\\"), DayActivity(time='5:00 PM', activity='Enjoy + a sunset at the Barracca Lift.', location='Upper Barracca Gardens', notes='Stunning + views of the Grand Harbour.'), DayActivity(time='7:30 PM', activity='Dinner + at The Harbour Club.', location='Valletta', notes='Fine dining with Mediterranean + cuisine.')], meals=['Lunch at Palazzo Consiglia', 'Dinner at The Harbour Club'], + accommodation='Palazzo Consiglia, Valletta'), DayPlan(day_number=2, date='2023-10-02', + title='Historical Wonders of Mdina', activities=[DayActivity(time='9:00 AM', + activity='Breakfast at the hotel.', location='Palazzo Consiglia', notes='Enjoy + a gourmet breakfast.'), DayActivity(time='10:30 AM', activity='Visit Mdina, + the Silent City.', location='Mdina', notes='Explore the narrow streets and + historic architecture.'), DayActivity(time='1:00 PM', activity='Lunch at Fontanella + Tea Garden.', location='Mdina', notes='Famous for its cakes and views.'), + DayActivity(time='3:00 PM', activity=\\\"Visit St. Paul's Cathedral and the + Mdina Dungeons.\\\", location='Mdina', notes='Immerse in the history of the + city.'), DayActivity(time='6:00 PM', activity='Return to Valletta.', location='Valletta', + notes='Free evening to relax.'), DayActivity(time='8:00 PM', activity='Dinner + at La Viletta.', location='Valletta', n\"}},{\"key\":\"gen_ai.prompt.19.tool_call_id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Paradise + Found: A Luxurious Escape to Barbados', destination='Barbados', duration_days=7, + total_budget_estimate='$5,000', daily_plans=[DayPlan(day_number=1, date='2023-11-01', + title='Arrival and Beach Relaxation', activities=[DayActivity(time='10:00 + AM', activity='Arrival at Grantley Adams International Airport', location='Bridgetown', + notes='Private transfer to hotel.'), DayActivity(time='12:00 PM', activity='Check-in + at Sandy Lane Hotel', location='Sandy Lane, St. James', notes='Enjoy a welcome + drink upon arrival.'), DayActivity(time='1:00 PM', activity='Lunch at The + Bajan Blue', location='Sandy Lane Hotel', notes='Try the fresh catch of the + day.'), DayActivity(time='3:00 PM', activity='Relax at the beach', location='Sandy + Lane Beach', notes='Enjoy complimentary beach services and cabanas.'), DayActivity(time='7:00 + PM', activity=\\\"Dinner at L'Acajou\\\", location='Sandy Lane Hotel', notes='Reserve + a table for an oceanfront dining experience.')], meals=['Lunch at The Bajan + Blue', \\\"Dinner at L'Acajou\\\"], accommodation='Sandy Lane Hotel'), DayPlan(day_number=2, + date='2023-11-02', title='Exploring the Nature and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at The Bajan Blue', location='Sandy Lane Hotel', + notes='Buffet breakfast included.'), DayActivity(time='9:30 AM', activity=\\\"Visit + Harrison's Cave\\\", location='Welches, St. Thomas', notes='Guided tram tour + of the limestone caves.'), DayActivity(time='12:00 PM', activity='Lunch at + The Cliff', location='The Cliff, St. James', notes='One of the best views + in Barbados.'), DayActivity(time='2:00 PM', activity='Explore the Andromeda + Botanic Gardens', location='Bathsheba', notes='Stroll through beautiful tropical + plants.'), DayActivity(time='5:00 PM', activity='Return to hotel and relax + by the pool', location='Sandy Lane Hotel', notes='Enjoy the sunset views.'), + DayActivity(time='8:00 PM', activity='Dinner at The Tides', location='Holetown', + notes='Fin\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a luxurious winter getaway itinerary for two amazing destinations: Malta and + Barbados. You can choose either for a memorable experience!\\n\\n### Malta: + A Luxurious Journey Through History and Culture\\n\\n#### Overview:\\n- **Duration:** + 7 Days\\n- **Budget:** \u20AC5000\\n- **Interests:** History, culture, relaxation\\n- + **Weather:** Partly cloudy, 14\xB0C to 25\xB0C\\n\\n#### Highlights:\\n- **Explore + Valletta:** Discover historic sites like St. John's Co-Cathedral and the Upper + Barracca Gardens.\\n- **Visit Mdina:** Wander through the narrow streets of + the Silent City.\\n- **Cruise the Blue Lagoon:** Relax and swim in crystal-clear + waters on Comino Island.\\n- **Art and Culture in Valletta:** Enjoy museums, + the Grand Master's Palace, and traditional Maltese cuisine.\\n- **Day in Gozo:** + Experience UNESCO sites and enjoy local cuisine in Xlendi Bay.\\n- **Relaxation + and Spa Day:** Indulge in luxury spa treatments and wine tasting.\\n\\n#### + Suggested Activities:\\n- Stroll through the National Museum of Archaeology.\\n- + Enjoy a Michelin-starred dining experience at Noni.\\n- Unwind at the historic + and luxurious Palazzo Consiglia.\\n\\n---\\n\\n### Barbados: Paradise Found\\n\\n#### + Overview:\\n- **Duration:** 7 Days\\n- **Budget:** $5,000\\n- **Interests:** + Beach, nature, relaxation\\n- **Weather:** Mainly clear with occasional rain, + 26\xB0C to 28\xB0C\\n\\n#### Highlights:\\n- **Stay at Sandy Lane:** Experience + luxury at a top-notch hotel.\\n- **Catamaran Cruise:** Snorkel and swim with + turtles.\\n- **Visit Harrison's Cave:** Explore stunning limestone formations.\\n- + **Beach Relaxation:** Enjoy water sports and sunbathing at Sandy Lane Beach.\\n- + **Cultural Sightseeing:** Visit the Barbados Museum and Andromeda Botanic + Gardens.\\n- **Island Adventure:** Discover the Animal Flower Cave and Bathsheba + Beach.\\n\\n#### Suggested Activities:\\n- Indulge in a private yoga session + on the beach.\\n- Savor local flavors at dining spots like The Cliff and Oistins + Fish Fry.\\n- Book a spa treatment for ultimate relaxation.\\n\\nChoose either + Malta for its rich history and culture or Barbados for its tropical para\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"6963\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"482\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7445\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"embCySXGZiM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057716128000\",\"endTimeUnixNano\":\"1763042059661983000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"60\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"525\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"mC8CCwLW76g=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663097000\",\"endTimeUnixNano\":\"1763042062451067000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ssDCKShkL44=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663477000\",\"endTimeUnixNano\":\"1763042062451172000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fuu6tO+Ndlo=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042062452499000\",\"endTimeUnixNano\":\"1763042064799092000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1003\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1055\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fvHJdvNTMws=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064799830000\",\"endTimeUnixNano\":\"1763042067739773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"T8dJZDmT4I4=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064800127000\",\"endTimeUnixNano\":\"1763042067739862000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"v6cWcKHOCjI=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042067741423000\",\"endTimeUnixNano\":\"1763042070448846000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1077\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"86\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1163\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"UEIsxC37pwE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449031000\",\"endTimeUnixNano\":\"1763042072801957000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"THKreibx8ug=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449103000\",\"endTimeUnixNano\":\"1763042072802080000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"YBTnmbTN6jE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042072803790000\",\"endTimeUnixNano\":\"1763042075107212000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1391\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1443\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"SxqLZKfWCmA=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108148000\",\"endTimeUnixNano\":\"1763042076670490000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"5dBBk3l1eiQ=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108516000\",\"endTimeUnixNano\":\"1763042076670556000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"cE+1FFJhlnU=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076671577000\",\"endTimeUnixNano\":\"1763042082126494000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1535\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"208\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1743\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"QAlZHx6RuLM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082127730000\",\"endTimeUnixNano\":\"1763042160416987000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"th2IYCV4hsE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082128207000\",\"endTimeUnixNano\":\"1763042160417136000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HDPGse/8x4o=\",\"parentSpanId\":\"mC8CCwLW76g=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042060166394000\",\"endTimeUnixNano\":\"1763042061283475000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"IA+JMvfXJl8=\",\"parentSpanId\":\"ssDCKShkL44=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042061306153000\",\"endTimeUnixNano\":\"1763042062439682000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"PzmXYx0yNzo=\",\"parentSpanId\":\"fvHJdvNTMws=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042065903652000\",\"endTimeUnixNano\":\"1763042066847763000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Malta\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ON9RLT3j6a4=\",\"parentSpanId\":\"T8dJZDmT4I4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042066849545000\",\"endTimeUnixNano\":\"1763042067737708000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"M2Q2FV2cXIU=\",\"parentSpanId\":\"UEIsxC37pwE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042070951475000\",\"endTimeUnixNano\":\"1763042071877256000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=35.8885993\\u0026longitude=14.4476911\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Ze33HN9DUpc=\",\"parentSpanId\":\"THKreibx8ug=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042071879722000\",\"endTimeUnixNano\":\"1763042072800019000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HKpm5tCLJzU=\",\"parentSpanId\":\"SxqLZKfWCmA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042075611055000\",\"endTimeUnixNano\":\"1763042076145487000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Malta\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"lAzYqhlHfpg=\",\"parentSpanId\":\"5dBBk3l1eiQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076148467000\",\"endTimeUnixNano\":\"1763042076669422000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Znd3vlNcirg=\",\"parentSpanId\":\"th2IYCV4hsE=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042123087205000\",\"endTimeUnixNano\":\"1763042160414874000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: beach, nature, relaxation\\n- Weather: Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\n- Destination Info: Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the luxury budget level and beach, nature, + relaxation interests.\\nEach day should have 3-5 activities with specific + times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS5EtpivASLkttPJzZ83ik15FlLX\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2260\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1719\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"541\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Paradise + Found: A Luxurious Escape to Barbados\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$5,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-01\\\",\\\"title\\\":\\\"Arrival + and Beach Relaxation\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrival + at Grantley Adams International Airport\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Private + transfer to hotel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at Sandy Lane Hotel\\\",\\\"location\\\":\\\"Sandy Lane, St. James\\\",\\\"notes\\\":\\\"Enjoy + a welcome drink upon arrival.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Try + the fresh catch of the day.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at the beach\\\",\\\"location\\\":\\\"Sandy Lane Beach\\\",\\\"notes\\\":\\\"Enjoy + complimentary beach services and cabanas.\\\"},{\\\"time\\\":\\\"7:00 PM\\\",\\\"activity\\\":\\\"Dinner + at L'Acajou\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Reserve + a table for an oceanfront dining experience.\\\"}],\\\"meals\\\":[\\\"Lunch + at The Bajan Blue\\\",\\\"Dinner at L'Acajou\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-02\\\",\\\"title\\\":\\\"Exploring + the Nature and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Buffet + breakfast included.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Harrison's Cave\\\",\\\"location\\\":\\\"Welches, St. Thomas\\\",\\\"notes\\\":\\\"Guided + tram tour of the limestone caves.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Cliff\\\",\\\"location\\\":\\\"The Cliff, St. James\\\",\\\"notes\\\":\\\"One + of the best views in Barbados.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + the Andromeda Botanic Gardens\\\",\\\"location\\\":\\\"Bathsheba\\\",\\\"notes\\\":\\\"Stroll + through beautiful tropical plants.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to hotel and relax by the pool\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Enjoy + the sunset views.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Tides\\\",\\\"location\\\":\\\"Holetown\\\",\\\"notes\\\":\\\"Fine + dining with a local twist.\\\"}],\\\"meals\\\":[\\\"Breakfast at The Bajan + Blue\\\",\\\"Lunch at The Cliff\\\",\\\"Dinner at The Tides\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"BVSE4lyy6Ng=\",\"parentSpanId\":\"QAlZHx6RuLM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042082648743000\",\"endTimeUnixNano\":\"1763042123074678000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Malta.\\n\\nTrip + Details:\\n- Destination: Malta\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: history, culture, relaxation\\n- Weather: Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\n- Destination Info: Malta is an island country + in Southern Europe, located in the Mediterranean Sea. The country's capital, + Valletta, is a historic city rich in culture and architecture. Official languages + are Maltese and English.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the luxury budget level and history, culture, relaxation interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS4aBtO0u5Rq9bvPgdgOeSH0n75R\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2342\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1792\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"550\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Malta: + A Luxurious Journey Through History and Culture\\\",\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC5000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Valletta\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia, Valletta\\\",\\\"notes\\\":\\\"Luxurious + boutique hotel with a historic feel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Try + local specialties.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + Valletta on foot.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Visit + St. John's Co-Cathedral and the Upper Barracca Gardens.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a sunset at the Barracca Lift.\\\",\\\"location\\\":\\\"Upper + Barracca Gardens\\\",\\\"notes\\\":\\\"Stunning views of the Grand Harbour.\\\"},{\\\"time\\\":\\\"7:30 + PM\\\",\\\"activity\\\":\\\"Dinner at The Harbour Club.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Fine + dining with Mediterranean cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Palazzo + Consiglia\\\",\\\"Dinner at The Harbour Club\\\"],\\\"accommodation\\\":\\\"Palazzo + Consiglia, Valletta\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Historical + Wonders of Mdina\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Enjoy + a gourmet breakfast.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Visit + Mdina, the Silent City.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Explore + the narrow streets and historic architecture.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Fontanella Tea Garden.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Famous + for its cakes and views.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + St. Paul's Cathedral and the Mdina Dungeons.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Immerse + in the history of the city.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Return + to Valletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Free + evening to relax.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at La Viletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Authentic + Maltese cuisine.\\\"}],\\\"meals\\\":[\\\"Breakfast at Palazzo Consiglia\\\",\\\"Lunch + at Fontanella Tea Garden\\\",\\\"Dinner at La Viletta\\\"],\\\"accommodation\\\":\\\"Palazzo\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '127530' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/693bde2879b745ff467c20bf9cd2ea7a + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"pApb0LsOSf0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984002122000\",\"endTimeUnixNano\":\"1763042055706374000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Ty846xocHPs=\",\"parentSpanId\":\"pApb0LsOSf0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984003244000\",\"endTimeUnixNano\":\"1763042055706244000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"r4Bxnys8Ajs=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042004652154000\",\"endTimeUnixNano\":\"1763042043092842000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"dvw9i3v4lK0=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042043095808000\",\"endTimeUnixNano\":\"1763042055704401000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2d2455c81978681b90b08ba66c7\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Nature + \\u0026 Adventure in New Zealand: A Week of Wonders', destination='New Zealand', + duration_days=7, total_budget_estimate='$1,500 - $2,000', daily_plans=[DayPlan(day_number=1, + date='2023-10-01', title='Arrival in Auckland', activities=[DayActivity(time='10:00 + AM', activity='Arrive at Auckland Airport', location='Auckland Airport', notes='Collect + rental car from the airport.'), DayActivity(time='12:00 PM', activity='Lunch + at Depot Eatery', location='Auckland', notes='Try local favorites like the + green-lipped mussels.'), DayActivity(time='2:00 PM', activity='Visit Auckland + War Memorial Museum', location='Domain Drive, Auckland', notes='Explore Maori + culture and New Zealand\u2019s natural history.'), DayActivity(time='4:00 + PM', activity='Stroll in Auckland Domain', location='Auckland', notes='Enjoy + the gardens and scenic views.'), DayActivity(time='6:00 PM', activity='Dinner + at The Glass Goose Bar \\u0026 Eatery', location='Auckland', notes='Outdoor + seating available.')], meals=['Lunch at Depot Eatery', 'Dinner at The Glass + Goose Bar \\u0026 Eatery'], accommodation='SkyCity Hotel, Auckland'), DayPlan(day_number=2, + date='2023-10-02', title='Exploring Rotorua', activities=[DayActivity(time='8:00 + AM', activity='Drive to Rotorua', location='Auckland to Rotorua (approx. 3 + hours)', notes='Enjoy scenic views along the way.'), DayActivity(time='11:00 + AM', activity='Visit Te Puia', location='Rotorua', notes='See geysers and + learn about Maori culture.'), DayActivity(time='1:00 PM', activity='Lunch + at Puku Puku Caf\xE9', location='Rotorua', notes='Sample local dishes.'), + DayActivity(time='3:00 PM', activity='Relax in the Polynesian Spa', location='Rotorua', + notes='Enjoy geothermal pools.'), DayActivity(time='6:00 PM', activity='Dinner + at Eat Streat', location='Rotorua', notes='Choose from various food stalls.')], + meals=['Lunch at Puku Puku Caf\xE9', 'Dinner at Eat Streat'], accommodation='Regent + of Rotorua'), DayPlan(day_number=3, date='2023-1\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"### + Nature \\u0026 Adventure in New Zealand: A Week of Wonders\\n\\n#### Destination: + New Zealand\\n- **Duration:** 7 Days\\n- **Budget:** Moderate ($1,500 - $2,000)\\n- + **Interests:** Nature, Adventure, Culture\\n\\n#### Weather Insights\\n- Current + conditions are overcast with a temperature of 7.6\xB0C.\\n- Expect mild temperatures + with some precipitation next week, ranging from 4\xB0C to 22\xB0C.\\n\\n#### + Trip Overview\\n\\n**Day 1: Arrival in Auckland**\\n- **10:00 AM:** Arrive + at Auckland Airport - Collect rental car.\\n- **12:00 PM:** Lunch at Depot + Eatery - Try local green-lipped mussels.\\n- **2:00 PM:** Visit Auckland War + Memorial Museum - Explore Maori culture.\\n- **4:00 PM:** Stroll in Auckland + Domain - Enjoy gardens and views.\\n- **6:00 PM:** Dinner at The Glass Goose + Bar \\u0026 Eatery.\\n- **Accommodation:** SkyCity Hotel, Auckland\\n\\n**Day + 2: Exploring Rotorua**\\n- **8:00 AM:** Drive to Rotorua (3 hours).\\n- **11:00 + AM:** Visit Te Puia - See geysers and Maori culture.\\n- **1:00 PM:** Lunch + at Puku Puku Caf\xE9 - Sample local dishes.\\n- **3:00 PM:** Relax in Polynesian + Spa - Enjoy geothermal pools.\\n- **6:00 PM:** Dinner at Eat Streat.\\n- **Accommodation:** + Regent of Rotorua\\n\\n**Day 3: Adventure in Taupo**\\n- **8:00 AM:** Drive + to Taupo (1 hour).\\n- **10:00 AM:** Visit Huka Falls.\\n- **12:00 PM:** Lunch + at The Boat Shed Caf\xE9.\\n- **2:00 PM:** Skydiving or Jet Boating - Book + in advance.\\n- **5:00 PM:** Relax at Taupo Lake Front.\\n- **Accommodation:** + Millennium Hotel Taupo\\n\\n**Day 4: Tongariro National Park**\\n- **7:00 + AM:** Drive to Tongariro (1 hour).\\n- **8:30 AM:** Begin Tongariro Alpine + Crossing - Full-day hike.\\n- **12:00 PM:** Lunch on the trail - Pack a picnic.\\n- + **4:00 PM:** Complete hike - Stunning views.\\n- **6:00 PM:** Dinner at a + local lodge.\\n- **Accommodation:** Chateau Tongariro Hotel\\n\\n**Day 5: + Wellington Culture Day**\\n- **8:00 AM:** Drive to Wellington (4 hours).\\n- + **12:00 PM:** Lunch at Fidel's Caf\xE9.\\n- **2:00 PM:** Visit Te Papa Tongarewa + Museum - Free entry.\\n- **4:00 PM:** Walk along Wellington Waterfront.\\n- + **6:00 PM:** Dinner at Ortega Fish Shack.\\n- **A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4339\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"846\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5185\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"IS6vpvXSyWc=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984005653000\",\"endTimeUnixNano\":\"1763041985613511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"936\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"959\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"brUFs0ciw1M=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041985613918000\",\"endTimeUnixNano\":\"1763041987102501000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Irx+5vAh2RA=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041987103912000\",\"endTimeUnixNano\":\"1763041990567857000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"801\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8D1wUHRUnJY=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568009000\",\"endTimeUnixNano\":\"1763041993540330000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Z0YMsVUAJiE=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568056000\",\"endTimeUnixNano\":\"1763041993540426000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"YOs61ryvpF4=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041993541968000\",\"endTimeUnixNano\":\"1763041995719255000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"876\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"84\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"960\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"4JCF5eBk2tQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719607000\",\"endTimeUnixNano\":\"1763041998146609000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ixR9+7Z/j1o=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719759000\",\"endTimeUnixNano\":\"1763041998146773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8mbS0moocyI=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041998148255000\",\"endTimeUnixNano\":\"1763041999477499000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2374\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"18\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2392\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ZXf5rcFUcLQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041999478441000\",\"endTimeUnixNano\":\"1763042000768653000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"1qbdTW8b/2E=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042000769229000\",\"endTimeUnixNano\":\"1763042004651429000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2545\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2687\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"NKOz3ltzNm0=\",\"parentSpanId\":\"r4Bxnys8Ajs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042005169975000\",\"endTimeUnixNano\":\"1763042043090298000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: nature, adventure, culture\\n- Weather: Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\n- Destination Info: New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It's known for varied topography and sharp mountain peaks, + including the Southern Alps. The capital city is Wellington, and its most + populous city is Auckland.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and nature, adventure, culture interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS3K2CF576d4YsisW6wGQEds7rmH\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2169\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1573\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"596\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Nature + \\u0026 Adventure in New Zealand: A Week of Wonders\\\",\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500 + - $2,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + rental car from the airport.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Depot Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Try + local favorites like the green-lipped mussels.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Domain + Drive, Auckland\\\",\\\"notes\\\":\\\"Explore Maori culture and New Zealand\u2019s + natural history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Stroll + in Auckland Domain\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Enjoy + the gardens and scenic views.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Outdoor + seating available.\\\"}],\\\"meals\\\":[\\\"Lunch at Depot Eatery\\\",\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + Rotorua\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Rotorua\\\",\\\"location\\\":\\\"Auckland to Rotorua (approx. 3 hours)\\\",\\\"notes\\\":\\\"Enjoy + scenic views along the way.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit + Te Puia\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"See geysers + and learn about Maori culture.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Puku Puku Caf\xE9\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Sample + local dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + in the Polynesian Spa\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Enjoy + geothermal pools.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Eat Streat\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Choose + from various food stalls.\\\"}],\\\"meals\\\":[\\\"Lunch at Puku Puku Caf\xE9\\\",\\\"Dinner + at Eat Streat\\\"],\\\"accommodation\\\":\\\"Regent of Rotorua\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Adventure + in Taupo\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Taupo\\\",\\\"location\\\":\\\"Rotorua to Taupo (approx. 1 hour)\\\",\\\"notes\\\":\\\"Stop + at Huk\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"056VGM+8Nok=\",\"parentSpanId\":\"brUFs0ciw1M=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041986115747000\",\"endTimeUnixNano\":\"1763041987094583000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"kvjaqj4KYrQ=\",\"parentSpanId\":\"8D1wUHRUnJY=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041991671179000\",\"endTimeUnixNano\":\"1763041992478589000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"u+rad2kmPnI=\",\"parentSpanId\":\"Z0YMsVUAJiE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041992480116000\",\"endTimeUnixNano\":\"1763041993538494000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ETHKBPTcA2s=\",\"parentSpanId\":\"4JCF5eBk2tQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041996225152000\",\"endTimeUnixNano\":\"1763041997195369000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"jQ6zmabmw2M=\",\"parentSpanId\":\"ixR9+7Z/j1o=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041997198300000\",\"endTimeUnixNano\":\"1763041998144145000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"0YqSiXc6Hig=\",\"parentSpanId\":\"ZXf5rcFUcLQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041999981250000\",\"endTimeUnixNano\":\"1763042000767913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '98254' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/eed63641fc3ffa3ea40a166e2604edd2 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"kDfoXagrNmk=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306563000\",\"endTimeUnixNano\":\"1763041981994302000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"5t6oCNV1x24=\",\"parentSpanId\":\"kDfoXagrNmk=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306752000\",\"endTimeUnixNano\":\"1763041981994217000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"CPDw9H+t3W0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041900556562000\",\"endTimeUnixNano\":\"1763041909681624000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are some great beach destinations for families in the Americas to consider:\\n\\n1. + **Barbados (Caribbean)**\\n - Language: English\\n - Currency: BBD\\n + \ - Known for its beautiful sandy beaches and vibrant culture.\\n\\n2. **Puerto + Rico (Caribbean)**\\n - Languages: English, Spanish\\n - Currency: USD\\n + \ - Offers lovely beaches, lush rainforests, and a rich cultural heritage.\\n\\n3. + **Turks and Caicos Islands (Caribbean)**\\n - Language: English\\n - Currency: + USD\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\n\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\n\\nI'll gather weather + information and details about Barbados and then create your itinerary.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"664\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"221\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"885\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"gjU8x51ljN8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909682975000\",\"endTimeUnixNano\":\"1763041912228857000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"saPJCTZOa8E=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909683354000\",\"endTimeUnixNano\":\"1763041912228748000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"v4pJsgk8eu8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041912233276000\",\"endTimeUnixNano\":\"1763041916478547000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1859\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"37\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1896\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vW7dC7113KM=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041916479365000\",\"endTimeUnixNano\":\"1763041923081358000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"S5LEq3ro4i0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041923083562000\",\"endTimeUnixNano\":\"1763041926952714000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2178\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"127\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2305\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"0revCekYick=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041926953355000\",\"endTimeUnixNano\":\"1763041968277636000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"awXbMZjA1IQ=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041968278645000\",\"endTimeUnixNano\":\"1763041981992200000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e284b4408193b787ece129274ff2\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Beach + Bliss in Barbados: A 7-Day Tropical Escape', destination='Barbados', duration_days=7, + total_budget_estimate='$1,500', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and Beach Day', activities=[DayActivity(time='12:00 PM', activity='Check-in + at hotel', location='Turtle Beach by Elegant Hotels', notes='Enjoy welcome + drinks and settle into your room.'), DayActivity(time='1:30 PM', activity='Lunch + at the hotel restaurant', location='Turtle Beach', notes='Try the grilled + fish with local spices.'), DayActivity(time='3:00 PM', activity='Relax at + Dover Beach', location='Dover Beach', notes='Beach chairs and umbrellas available + for rent.'), DayActivity(time='6:00 PM', activity='Sunset viewing', location='Dover + Beach', notes='Perfect spot for photos.'), DayActivity(time='7:30 PM', activity='Dinner + at The Oistins Fish Fry', location='Oistins', notes='A vibrant atmosphere + with fresh seafood.')], meals=['Lunch at Turtle Beach', 'Dinner at Oistins + Fish Fry'], accommodation='Turtle Beach by Elegant Hotels'), DayPlan(day_number=2, + date='2023-10-02', title='Explore Bridgetown', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at the hotel', location='Turtle Beach', notes='Buffet + style with local and international options.'), DayActivity(time='9:30 AM', + activity='Visit the Barbados Museum \\u0026 Historical Society', location='Bridgetown', + notes=\\\"Learn about the island's history.\\\"), DayActivity(time='12:00 + PM', activity='Lunch at Brown Sugar', location='Bridgetown', notes='Taste + local dishes in an outdoor setting.'), DayActivity(time='2:00 PM', activity='Explore + George Street and local shops', location='Bridgetown', notes='Pick up souvenirs + and local crafts.'), DayActivity(time='4:00 PM', activity='Relax at Pebbles + Beach', location='Pebbles Beach', notes='Enjoy swimming and sunbathing.'), + DayActivity(time='6:00 PM', activity='Dinner at The Cliff', location='St. + James', notes='Reservations recommend\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for your family vacation in Barbados, focusing + on beach activities and cultural experiences:\\n\\n### Trip Title: Beach Bliss + in Barbados: A 7-Day Tropical Escape\\n\\n#### **Day 1: Arrival and Beach + Day**\\n- **12:00 PM:** Check-in at Turtle Beach by Elegant Hotels. Enjoy + welcome drinks and settle in.\\n- **1:30 PM:** Lunch at the hotel restaurant. + Try the grilled fish with local spices.\\n- **3:00 PM:** Relax at Dover Beach. + Beach chairs and umbrellas available.\\n- **6:00 PM:** Enjoy a sunset viewing + at Dover Beach\u2014perfect for photos.\\n- **7:30 PM:** Dinner at The Oistins + Fish Fry. Vibrant atmosphere with fresh seafood.\\n\\n#### **Day 2: Explore + Bridgetown**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** + Visit the Barbados Museum \\u0026 Historical Society. Learn about the island's + history.\\n- **12:00 PM:** Lunch at Brown Sugar. Taste local dishes.\\n- **2:00 + PM:** Explore George Street and local shops for souvenirs.\\n- **4:00 PM:** + Relax at Pebbles Beach. Enjoy swimming and sunbathing.\\n- **6:00 PM:** Dinner + at The Cliff. Stunning ocean views, reservations recommended.\\n\\n#### **Day + 3: Catamaran Adventure**\\n- **7:30 AM:** Breakfast at Turtle Beach.\\n- **9:00 + AM:** Catamaran cruise from Bridgetown. Swim with turtles and snorkel at coral + reefs.\\n- **12:30 PM:** Lunch on board the catamaran.\\n- **3:00 PM:** Return + to the hotel, relax at the beach or pool.\\n- **7:00 PM:** Dinner at The Round + House in Bathsheba. Try local fish dishes.\\n\\n#### **Day 4: Beach Hopping**\\n- + **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** Visit Crane Beach. + Famous for its pink sand.\\n- **12:00 PM:** Lunch at The Crane Beach Resort.\\n- + **2:00 PM:** Head to Bottom Bay Beach. Less crowded and perfect for relaxation.\\n- + **5:00 PM:** Return to hotel.\\n- **7:30 PM:** Dinner at Naru Restaurant and + Lounge. Local and Asian fusion cuisine.\\n\\n#### **Day 5: Island Culture + and Relaxation**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **10:00 AM:** + Visit St. Nicholas Abbey. Tour the plantation and rum distillery.\\n- **1:00 + PM:** Lunch at the A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4121\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"842\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4963\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vSd7s42xrTw=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894311147000\",\"endTimeUnixNano\":\"1763041898739189000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"932\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"22\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"954\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"dkkP9YWRUaI=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041898739699000\",\"endTimeUnixNano\":\"1763041900553722000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"jB510DMs6/8=\",\"parentSpanId\":\"saPJCTZOa8E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910186602000\",\"endTimeUnixNano\":\"1763041910919083000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"I4smyApmv2I=\",\"parentSpanId\":\"gjU8x51ljN8=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910919911000\",\"endTimeUnixNano\":\"1763041912227844000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wsif3cTB5R0=\",\"parentSpanId\":\"vW7dC7113KM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041916984585000\",\"endTimeUnixNano\":\"1763041923078888000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"T263X02AHSc=\",\"parentSpanId\":\"dkkP9YWRUaI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041899242488000\",\"endTimeUnixNano\":\"1763041900545636000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wJnvML6OlKo=\",\"parentSpanId\":\"0revCekYick=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041927471141000\",\"endTimeUnixNano\":\"1763041968276800000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: beaches\\n- Weather: Current temperature 27.4\xB0C, mainly clear + conditions. Forecast: mostly warm weather with some rain expected later in + the week.\\n- Destination Info: Barbados is an island country in the Caribbean + located in the Atlantic Ocean. It is part of the Lesser Antilles of the West + Indies and the easternmost island of the Caribbean region. It lies on the + boundary of the South American and Caribbean plates. Its capital and largest + city is Bridgetown.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and beaches interests.\\nEach day should have 3-5 + activities with specific times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS25L4VnHyasIegXuwEirm30SBWf\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2288\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1717\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"571\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Beach + Bliss in Barbados: A 7-Day Tropical Escape\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Beach Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at hotel\\\",\\\"location\\\":\\\"Turtle Beach by Elegant Hotels\\\",\\\"notes\\\":\\\"Enjoy + welcome drinks and settle into your room.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Try + the grilled fish with local spices.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at Dover Beach\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Beach + chairs and umbrellas available for rent.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Sunset + viewing\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Perfect + spot for photos.\\\"},{\\\"time\\\":\\\"7:30 PM\\\",\\\"activity\\\":\\\"Dinner + at The Oistins Fish Fry\\\",\\\"location\\\":\\\"Oistins\\\",\\\"notes\\\":\\\"A + vibrant atmosphere with fresh seafood.\\\"}],\\\"meals\\\":[\\\"Lunch at Turtle + Beach\\\",\\\"Dinner at Oistins Fish Fry\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Explore + Bridgetown\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Buffet + style with local and international options.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + the Barbados Museum \\u0026 Historical Society\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Learn + about the island's history.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Brown Sugar\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Taste + local dishes in an outdoor setting.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + George Street and local shops\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Pick + up souvenirs and local crafts.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Relax + at Pebbles Beach\\\",\\\"location\\\":\\\"Pebbles Beach\\\",\\\"notes\\\":\\\"Enjoy + swimming and sunbathing.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Cliff\\\",\\\"location\\\":\\\"St. James\\\",\\\"notes\\\":\\\"Reservations + recommended for stunning ocean views.\\\"}],\\\"meals\\\":[\\\"Breakfast at + Turtle Beach\\\",\\\"Lunch at Brown Sugar\\\",\\\"Dinner at The Cliff\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '79035' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoSearchSpans.test_search_spans_with_generic_filter.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchSpans.test_search_spans_with_generic_filter.yaml new file mode 100644 index 0000000..41ddd51 --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchSpans.test_search_spans_with_generic_filter.yaml @@ -0,0 +1,32 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B+span.duration_ms+%3E+10+%7D&limit=40 + response: + body: + string: '{"traces":[],"metrics":{"inspectedBytes":"66363","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Length: + - '125' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoSearchSpans.test_search_spans_with_limit.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchSpans.test_search_spans_with_limit.yaml new file mode 100644 index 0000000..b617630 --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchSpans.test_search_spans_with_limit.yaml @@ -0,0 +1,5248 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B%7D&limit=20 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}},{"traceID":"b37b4c7727a54482f8c71cb88799c108","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042214208334000","durationMs":74124,"spanSet":{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18},"spanSets":[{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18}],"serviceStats":{"travel-agent-demo2":{"spanCount":18}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"67921","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Vary: + - Accept-Encoding + content-length: + - '6560' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/bec9c8df1c3a22a134e4c9c7aa0f0ce3 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"htO31/xjQN0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458122243000\",\"endTimeUnixNano\":\"1763042536895402000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"0hFkYEm0pAA=\",\"parentSpanId\":\"htO31/xjQN0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458123662000\",\"endTimeUnixNano\":\"1763042536895316000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"SZQWdqnT86M=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458125576000\",\"endTimeUnixNano\":\"1763042460061974000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"933\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"956\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"LhJKSMoSSOA=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042460062781000\",\"endTimeUnixNano\":\"1763042461638134000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"j4A8EPQuGCg=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042461639066000\",\"endTimeUnixNano\":\"1763042463839211000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"800\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"850\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ULgV+UrP/qI=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463839867000\",\"endTimeUnixNano\":\"1763042466936364000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"rU40hFuwoTM=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463840073000\",\"endTimeUnixNano\":\"1763042466936520000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"t17Kam4h9+E=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466938646000\",\"endTimeUnixNano\":\"1763042470405151000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.completion.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.3.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"437\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"116\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"553\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"7g4u8KYJLAU=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406246000\",\"endTimeUnixNano\":\"1763042474022207000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"yCwOkiG7rZ4=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406582000\",\"endTimeUnixNano\":\"1763042474022257000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"suvbAlwFQxE=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406864000\",\"endTimeUnixNano\":\"1763042474022284000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"kK2HJo7iF1s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470407130000\",\"endTimeUnixNano\":\"1763042474022309000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"hqoFE9rpZHw=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042474023255000\",\"endTimeUnixNano\":\"1763042479037529000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2709\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"3q+1aP5st6s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042479037941000\",\"endTimeUnixNano\":\"1763042521886451000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"FSS1aMtuo4g=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042521888311000\",\"endTimeUnixNano\":\"1763042536893685000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4ab7f848195ada04713bd68e3dc\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Exploring + the Wonders of New Zealand', destination='New Zealand', duration_days=7, total_budget_estimate='$1,500', + daily_plans=[DayPlan(day_number=1, date='2023-10-01', title='Arrival in Auckland', + activities=[DayActivity(time='09:00 AM', activity='Arrive at Auckland Airport', + location='Auckland Airport', notes='Collect your rental car for the week.'), + DayActivity(time='10:00 AM', activity='Check into Accommodation', location='SkyCity + Hotel', notes='Located in the city center, convenient for exploring.'), DayActivity(time='11:30 + AM', activity='Visit Auckland War Memorial Museum', location='Auckland Domain', + notes='Explore New Zealand\u2019s cultural heritage and natural history.'), + DayActivity(time='02:00 PM', activity='Lunch at Tom Tom Bar \\u0026 Eatery', + location='SkyCity', notes='Enjoy a relaxing meal with views of the city.'), + DayActivity(time='03:30 PM', activity='Walk around Viaduct Harbour', location='Viaduct + Harbour', notes='Stroll along the waterfront and enjoy the vibrant atmosphere.'), + DayActivity(time='06:30 PM', activity='Dinner at Depot Eatery', location='Federal + Street, Auckland', notes='Experience local New Zealand cuisine.')], meals=['Lunch + at Tom Tom Bar \\u0026 Eatery', 'Dinner at Depot Eatery'], accommodation='SkyCity + Hotel, Auckland'), DayPlan(day_number=2, date='2023-10-02', title='Exploring + the Bay of Islands', activities=[DayActivity(time='07:00 AM', activity='Drive + to Bay of Islands', location='Bay of Islands', notes='Approx. 3 hours drive, + enjoy scenic views on the way.'), DayActivity(time='10:30 AM', activity='Take + a Bay of Islands Cruise', location='Paihia Wharf', notes='Explore the stunning + islands and spot marine wildlife.'), DayActivity(time='01:00 PM', activity='Lunch + at The Gables Restaurant', location='Russell', notes='Try fresh seafood and + local dishes.'), DayActivity(time='03:00 PM', activity='Visit Waitangi Treaty + Grounds', location='Waitangi', notes=\\\"Learn about New Zealand's history + an\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for a romantic cultural vacation in New Zealand, + tailored to your interests:\\n\\n### Exploring the Wonders of New Zealand\\n\\n#### + **Day 1: Arrival in Auckland**\\n- **Morning**\\n - Arrive at Auckland Airport\\n + \ - Check into SkyCity Hotel, centrally located for easy exploration.\\n- + **Afternoon**\\n - Visit Auckland War Memorial Museum: Delve into New Zealand\u2019s + cultural heritage.\\n - Lunch at Tom Tom Bar \\u0026 Eatery: Enjoy city views.\\n- + **Evening**\\n - Walk around Viaduct Harbour: Vibrant waterfront stroll.\\n + \ - Dinner at Depot Eatery: Experience local cuisine.\\n\\n#### **Day 2: Exploring + the Bay of Islands**\\n- **Morning**\\n - Drive to Bay of Islands: Scenic + 3-hour journey.\\n - Take a Bay of Islands Cruise: Explore islands and marine + wildlife.\\n- **Afternoon**\\n - Lunch at The Gables Restaurant: Fresh local + seafood.\\n - Visit Waitangi Treaty Grounds: Learn about New Zealand's history.\\n- + **Evening**\\n - Return to Auckland.\\n - Dinner at The Glasshouse.\\n\\n#### + **Day 3: Wellington - The Capital**\\n- **Morning**\\n - Drive to Wellington: + Enjoy the scenic route.\\n- **Afternoon**\\n - Lunch at The Boatshed Cafe.\\n + \ - Visit Te Papa Tongarewa (Museum of New Zealand): Explore national history.\\n- + **Evening**\\n - Cable Car Ride to Kelburn: City views.\\n - Dinner at Logan + Brown: Fine dining.\\n\\n#### **Day 4: Nature and Culture in Wellington**\\n- + **Morning**\\n - Wellington Botanic Garden: Peaceful morning walk.\\n - + Explore Zealandia Ecosanctuary: Discover unique wildlife.\\n- **Afternoon**\\n + \ - Lunch at The Ramen Shop.\\n - Visit the National Portrait Gallery.\\n- + **Evening**\\n - Dinner at The Old Bailey.\\n\\n#### **Day 5: Travel to Queenstown**\\n- + **Early Morning**\\n - Fly from Wellington to Queenstown.\\n- **Morning**\\n + \ - Check into Center City Apartments.\\n - Skyline Gondola Ride: Panoramic + views.\\n- **Afternoon**\\n - Lunch at Stratosfare Restaurant: Mountain views.\\n + \ - Explore Queenstown Gardens.\\n- **Evening**\\n - Jet Boating on Lake + Wakatipu.\\n - Dinner at Fergburger.\\n\\n#### **Day 6: Adventure in Queenstown**\\n- + **Morning**\\n - \"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4669\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"694\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5363\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xp8+s75qaoQ=\",\"parentSpanId\":\"LhJKSMoSSOA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042460566475000\",\"endTimeUnixNano\":\"1763042461631027000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xTNGMbJ8o4w=\",\"parentSpanId\":\"ULgV+UrP/qI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042464944178000\",\"endTimeUnixNano\":\"1763042466058265000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"cp8E6e04/1g=\",\"parentSpanId\":\"rU40hFuwoTM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466061655000\",\"endTimeUnixNano\":\"1763042466934165000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"vHsnrxC0dGw=\",\"parentSpanId\":\"7g4u8KYJLAU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042470916507000\",\"endTimeUnixNano\":\"1763042471857859000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"wieBZmgqMfE=\",\"parentSpanId\":\"yCwOkiG7rZ4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042471863066000\",\"endTimeUnixNano\":\"1763042472795187000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"KvPdWQGWzrM=\",\"parentSpanId\":\"suvbAlwFQxE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042472796856000\",\"endTimeUnixNano\":\"1763042473492982000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"YDcPBs0N6BQ=\",\"parentSpanId\":\"kK2HJo7iF1s=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042473499558000\",\"endTimeUnixNano\":\"1763042474021224000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Australia\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ZxRbtS6dkJI=\",\"parentSpanId\":\"3q+1aP5st6s=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042479555737000\",\"endTimeUnixNano\":\"1763042521884511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: culture, nature\\n- Weather: Current temperature is 7.5\xB0C and + overcast. Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected + on certain days.\\n- Destination Info: New Zealand is an island country in + the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the moderate budget level and culture, + nature interests.\\nEach day should have 3-5 activities with specific times, + locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbSAyeprdNroIr4yr884B5SquCIU0\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2320\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1726\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"594\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Exploring + the Wonders of New Zealand\\\",\\\"destination\\\":\\\"New Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + your rental car for the week.\\\"},{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into Accommodation\\\",\\\"location\\\":\\\"SkyCity Hotel\\\",\\\"notes\\\":\\\"Located + in the city center, convenient for exploring.\\\"},{\\\"time\\\":\\\"11:30 + AM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Auckland + Domain\\\",\\\"notes\\\":\\\"Explore New Zealand\u2019s cultural heritage + and natural history.\\\"},{\\\"time\\\":\\\"02:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"SkyCity\\\",\\\"notes\\\":\\\"Enjoy + a relaxing meal with views of the city.\\\"},{\\\"time\\\":\\\"03:30 PM\\\",\\\"activity\\\":\\\"Walk + around Viaduct Harbour\\\",\\\"location\\\":\\\"Viaduct Harbour\\\",\\\"notes\\\":\\\"Stroll + along the waterfront and enjoy the vibrant atmosphere.\\\"},{\\\"time\\\":\\\"06:30 + PM\\\",\\\"activity\\\":\\\"Dinner at Depot Eatery\\\",\\\"location\\\":\\\"Federal + Street, Auckland\\\",\\\"notes\\\":\\\"Experience local New Zealand cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"Dinner at Depot Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + the Bay of Islands\\\",\\\"activities\\\":[{\\\"time\\\":\\\"07:00 AM\\\",\\\"activity\\\":\\\"Drive + to Bay of Islands\\\",\\\"location\\\":\\\"Bay of Islands\\\",\\\"notes\\\":\\\"Approx. + 3 hours drive, enjoy scenic views on the way.\\\"},{\\\"time\\\":\\\"10:30 + AM\\\",\\\"activity\\\":\\\"Take a Bay of Islands Cruise\\\",\\\"location\\\":\\\"Paihia + Wharf\\\",\\\"notes\\\":\\\"Explore the stunning islands and spot marine wildlife.\\\"},{\\\"time\\\":\\\"01:00 + PM\\\",\\\"activity\\\":\\\"Lunch at The Gables Restaurant\\\",\\\"location\\\":\\\"Russell\\\",\\\"notes\\\":\\\"Try + fresh seafood and local dishes.\\\"},{\\\"time\\\":\\\"03:00 PM\\\",\\\"activity\\\":\\\"Visit + Waitangi Treaty Grounds\\\",\\\"location\\\":\\\"Waitangi\\\",\\\"notes\\\":\\\"Learn + about New Zealand's history and culture.\\\"},{\\\"time\\\":\\\"05:30 PM\\\",\\\"activity\\\":\\\"Return + to Auckland\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Relax + in the car or stop for coffee on the way.\\\"},{\\\"time\\\":\\\"07:3\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '88742' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/6ce0a0129015a826c7f54b78275cfe37 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"QM3dFI3l52g=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290335056000\",\"endTimeUnixNano\":\"1763042456116415000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"3iOop76o3Sw=\",\"parentSpanId\":\"QM3dFI3l52g=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290336958000\",\"endTimeUnixNano\":\"1763042456116320000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"BGNWa2Lx+H4=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290337931000\",\"endTimeUnixNano\":\"1763042291996182000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"58\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"523\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bpkI8o2juJI=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042291997852000\",\"endTimeUnixNano\":\"1763042294883864000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"FWUQD7dWK24=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042291998533000\",\"endTimeUnixNano\":\"1763042294884045000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"JxMUY8xtBSU=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042294885529000\",\"endTimeUnixNano\":\"1763042317534957000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"For + an adventurous trip, I've selected two destinations known for thrilling experiences: + **Chile** in South America and **Tajikistan** in Central Asia. Let's explore + these destinations further to plan your exciting itinerary.\\n\\n### Chile\\n- + **Capital**: Santiago\\n- **Language**: Spanish\\n- **Currency**: Chilean + Peso (CLP)\\n- **Time Zone**: UTC-06:00 to UTC-04:00\\n\\n### Tajikistan\\n- + **Capital**: Dushanbe\\n- **Language**: Tajik, Russian\\n- **Currency**: Tajikistani + Somoni (TJS)\\n- **Time Zone**: UTC+05:00\\n\\nI'll gather the weather information + and then craft a detailed itinerary for you.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"945\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"213\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1158\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"OnwfJc+G7eA=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042317535695000\",\"endTimeUnixNano\":\"1763042321467468000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"zVBafqJLSVU=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042317535898000\",\"endTimeUnixNano\":\"1763042321467528000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"t+rxwgGXbbg=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042321470042000\",\"endTimeUnixNano\":\"1763042324279616000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1194\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"92\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1286\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"cOiJesC5V+c=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042324280282000\",\"endTimeUnixNano\":\"1763042326821781000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"VHh495GUkl0=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042324280617000\",\"endTimeUnixNano\":\"1763042326822084000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"QcXOYcnb1as=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042326824312000\",\"endTimeUnixNano\":\"1763042328899504000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1518\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"58\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1576\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"q9X9jhj0kbo=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042328900052000\",\"endTimeUnixNano\":\"1763042332069522000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bKmi3eZoF9E=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042328900188000\",\"endTimeUnixNano\":\"1763042332069569000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"pQWL2XkRjNE=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042332070368000\",\"endTimeUnixNano\":\"1763042337546943000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418af3c8190b5314c9f212bff34\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418cdf8819087ab8a397842e1ba\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Santiago, Chile' info=DestinationInfo(title='Santiago', + summary='Capital and largest city of Chile', extract=\\\"Santiago, also known + as Santiago de Chile, is the capital and largest city of Chile and one of + the largest cities in the Americas. Located in the Chilean Central Valley, + it anchors its namesake Santiago Metropolitan Region representing 40% of Chile's + total population. Most of the city is situated between 500\u2013650\\\\xa0m + (1,640\u20132,133\\\\xa0ft) above sea level.\\\")\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.17.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Dushanbe, Tajikistan' info=DestinationInfo(title='Dushanbe', + summary='Capital and largest city of Tajikistan', extract='Dushanbe is the + capital and largest city of Tajikistan. As of February\\\\xa02023, Dushanbe + had a population of 1,228,400, with this population being largely Tajik. Until + 1929, the city was known in Russian as Dyushambe, and from 1929 to 1961 as + Stalinabad, after Joseph Stalin. Dushanbe is located in the Gissar Valley, + bounded by the Gissar Range in the north and east and the Babatag, Aktau, + Rangontau and Karatau mountains in the south, and has an elevation of 750\u2013930 + m. The city is divided into four districts: Ismail Samani, Avicenna, Ferdowsi, + and Shah Mansur.')\"}},{\"key\":\"gen_ai.prompt.17.tool_call_id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Santiago, + Chile\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 24\xB0C with partly cloudy conditions. Upcoming days will be + mostly clear with temperatures ranging from 26\xB0C to 34\xB0C.\\\",\\\"destination_details\\\":\\\"Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_VD4AdDcXmJyed5FWcjWG7Ikt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\\",\\\"destination_details\\\":\\\"Dushanbe + is the capital and largest city of Tajikistan. It is located in the Gissar + Valley, bounded by mountainous terrains, and has a population of over 1 million + people.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_lid7TRD6rOxaEhIq6ISjqGG2\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1702\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"288\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1990\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"/iqJRoiO3Hs=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042337548317000\",\"endTimeUnixNano\":\"1763042433336198000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"dQSecaXxjXM=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042337548704000\",\"endTimeUnixNano\":\"1763042433336329000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"Gic8k6ZyUjM=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042433338440000\",\"endTimeUnixNano\":\"1763042456109947000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418af3c8190b5314c9f212bff34\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418cdf8819087ab8a397842e1ba\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Santiago, Chile' info=DestinationInfo(title='Santiago', + summary='Capital and largest city of Chile', extract=\\\"Santiago, also known + as Santiago de Chile, is the capital and largest city of Chile and one of + the largest cities in the Americas. Located in the Chilean Central Valley, + it anchors its namesake Santiago Metropolitan Region representing 40% of Chile's + total population. Most of the city is situated between 500\u2013650\\\\xa0m + (1,640\u20132,133\\\\xa0ft) above sea level.\\\")\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.17.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Dushanbe, Tajikistan' info=DestinationInfo(title='Dushanbe', + summary='Capital and largest city of Tajikistan', extract='Dushanbe is the + capital and largest city of Tajikistan. As of February\\\\xa02023, Dushanbe + had a population of 1,228,400, with this population being largely Tajik. Until + 1929, the city was known in Russian as Dyushambe, and from 1929 to 1961 as + Stalinabad, after Joseph Stalin. Dushanbe is located in the Gissar Valley, + bounded by the Gissar Range in the north and east and the Babatag, Aktau, + Rangontau and Karatau mountains in the south, and has an elevation of 750\u2013930 + m. The city is divided into four districts: Ismail Samani, Avicenna, Ferdowsi, + and Shah Mansur.')\"}},{\"key\":\"gen_ai.prompt.17.tool_call_id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e41d98b08190a0e7d230b49ad8ac\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Santiago, + Chile\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 24\xB0C with partly cloudy conditions. Upcoming days will be + mostly clear with temperatures ranging from 26\xB0C to 34\xB0C.\\\",\\\"destination_details\\\":\\\"Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e41fb6448190bca146180572c7a7\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\\",\\\"destination_details\\\":\\\"Dushanbe + is the capital and largest city of Tajikistan. It is located in the Gissar + Valley, bounded by mountainous terrains, and has a population of over 1 million + people.\\\"}\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Santiago, Chile' itinerary=TravelItinerary(trip_title='Adventurous + Santiago: A 7-Day Exploration', destination='Santiago, Chile', duration_days=7, + total_budget_estimate='$800-$1000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Santiago', activities=[DayActivity(time='10:00 AM', activity='Arrive + at Santiago International Airport', location='Santiago International Airport', + notes='Pick up rental car or take a taxi to the accommodation.'), DayActivity(time='11:30 + AM', activity='Check-in to accommodation', location='Hotel Plaza El Bosque', + notes='Moderate budget, centrally located.'), DayActivity(time='1:00 PM', + activity='Lunch at Liguria', location='Liguria Restaurant', notes='Try the + local seafood dishes.'), DayActivity(time='3:00 PM', activity='Walk around + Plaza de Armas', location='Plaza de Armas', notes='Explore the historic heart + of Santiago.'), DayActivity(time='5:00 PM', activity='Visit Cerro Santa Lucia', + location='Cerro Santa Lucia', notes='Enjoy panoramic views of the city.')], + meals=['Lunch at Liguria', 'Dinner at La Piojera'], accommodation='Hotel Plaza + El Bosque'), DayPlan(day_number=2, date='2023-10-02', title='Cajon del Maipo + Adventure', activities=[DayActivity(time='8:00 AM', activity='Breakfast at + the hotel', location='Hotel Plaza El Bosque', notes='Enjoy a hearty breakfast.'), + DayActivity(time='9:00 AM', activity='Depart for Cajon del Maipo', location='Cajon + del Maipo', notes='A beautiful area for outdoor activities.'), DayActivity(time='10:30 + AM', activity='Hiking in the El Morado National Monument', location='El Morado', + notes='Moderate hike with stunning views.'), DayActivity(time='1:00 PM', activity='Picnic + lunch in nature', location='El Morado', notes='Pack a lunch to enjoy in the + outdoors.'), DayActivity(time='3:00 PM', activity='Visit Embalse El Yeso', + location='Embalse El Yeso', notes='Take photos and enjoy the scenery.'), DayActivity(time='5:00 + PM', activity='Return to Santiago', location='Santiago', notes='R\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_VD4AdDcXmJyed5FWcjWG7Ikt\"}},{\"key\":\"gen_ai.prompt.21.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.21.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Dushanbe, Tajikistan' itinerary=TravelItinerary(trip_title='Adventure + Awaits in Dushanbe', destination='Dushanbe, Tajikistan', duration_days=7, + total_budget_estimate='$700', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and City Exploration', activities=[DayActivity(time='09:00 + AM', activity='Arrive in Dushanbe', location='Dushanbe International Airport', + notes='Transfer to hotel via taxi or arranged pickup.'), DayActivity(time='10:30 + AM', activity='Check-in and freshen up', location='Hotel Atlas Dushanbe', + notes='Moderate hotel with good reviews.'), DayActivity(time='12:00 PM', activity='Lunch + at Restaurant Shodlik', location='Shodlik Restaurant', notes='Try local dishes + like Plov and Shashlik.'), DayActivity(time='01:30 PM', activity='Visit the + National Museum of Tajikistan', location='Dushanbe', notes='Explore Tajik + history and culture.'), DayActivity(time='03:30 PM', activity='Walk around + Rudaki Park', location='Rudaki Park', notes='Enjoy the greenery and relax.'), + DayActivity(time='06:00 PM', activity='Dinner at Restaurant Dushanbe', location='Restaurant + Dushanbe', notes='Known for traditional Tajik cuisine.')], meals=['Lunch at + Shodlik', 'Dinner at Restaurant Dushanbe'], accommodation='Hotel Atlas Dushanbe'), + DayPlan(day_number=2, date='2023-10-02', title='Adventure in the Mountains', + activities=[DayActivity(time='08:00 AM', activity='Breakfast at the hotel', + location='Hotel Atlas Dushanbe', notes='Start your day with a hearty breakfast.'), + DayActivity(time='09:00 AM', activity='Day trip to Fann Mountains', location='Fann + Mountains', notes='Hire a local guide for an adventure hike.'), DayActivity(time='12:30 + PM', activity='Picnic lunch at Alaudin Lakes', location='Alaudin Lakes', notes='Pack + lunch from the hotel.'), DayActivity(time='02:00 PM', activity='Hiking around + the lakes', location='Alaudin Lakes', notes='Enjoy stunning views and take + photos.'), DayActivity(time='05:00 PM', activity='Return to Dushanbe', location='Dushanbe',\"}},{\"key\":\"gen_ai.prompt.21.tool_call_id\",\"value\":{\"stringValue\":\"call_lid7TRD6rOxaEhIq6ISjqGG2\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are two thrilling itineraries tailor-made for your adventurous spirit. You + can choose between Santiago, Chile, known for its vibrant city life and stunning + natural landscapes, or Dushanbe, Tajikistan, offering untouched natural beauty + and rich cultural experiences.\\n\\n### Santiago, Chile: Adventurous Exploration + (7 Days)\\n**Highlights:**\\n- Explore vibrant city life in Santiago, including + cultural sites like Plaza de Armas and Cerro Santa Lucia.\\n- Experience the + thrill of hiking in Cajon del Maipo and El Morado National Monument.\\n- Enjoy + a day trip to colorful Valparaiso.\\n- Taste Chilean wines on a Maipo Valley + wine tour.\\n- Adventure in the Andes Mountains with skiing or hiking.\\n\\n**Estimated + Budget:** $800-$1000\\n\\n**Travel Tips:** Learn some basic Spanish phrases, + and always carry water for outdoor activities.\\n\\n**Packing Suggestions:** + Lightweight clothing, comfortable hiking shoes, and sun protection.\\n\\n### + Dushanbe, Tajikistan: Adventure in Nature (7 Days)\\n**Highlights:**\\n- Discover + Dushanbe's cultural sites, including the National Museum and Rudaki Park.\\n- + Embark on an adventurous day in the Fann Mountains with hiking and exploring + the Alaudin Lakes.\\n- Enjoy rafting and hiking in Varzob Valley.\\n- Trek + in the majestic Pamir Mountains to Lake Sarez.\\n\\n**Estimated Budget:** + $700\\n\\n**Travel Tips:** Learn basic Tajik phrases, carry cash, and respect + local traditions.\\n\\n**Packing Suggestions:** Lightweight, layered clothing, + comfortable hiking shoes, and sunscreen.\\n\\nBoth itineraries promise adventure + and memorable experiences. Let me know if you have any preferences or need + further assistance!\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"7540\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"333\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7873\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"flp6zhR87z8=\",\"parentSpanId\":\"bpkI8o2juJI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042292502514000\",\"endTimeUnixNano\":\"1763042293711707000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Asia\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"8pVEfcKzjl0=\",\"parentSpanId\":\"FWUQD7dWK24=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042293718002000\",\"endTimeUnixNano\":\"1763042294872800000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"r7fWWieyOBU=\",\"parentSpanId\":\"OnwfJc+G7eA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042318640277000\",\"endTimeUnixNano\":\"1763042320464533000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Santiago%2C+Chile\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"HtDo/cYr/Zg=\",\"parentSpanId\":\"zVBafqJLSVU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042320470625000\",\"endTimeUnixNano\":\"1763042321464327000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Dushanbe%2C+Tajikistan\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"Vk5JbW85DaI=\",\"parentSpanId\":\"cOiJesC5V+c=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042324782420000\",\"endTimeUnixNano\":\"1763042325888098000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-33.4377756\\u0026longitude=-70.6504502\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bvgm7G6N5UQ=\",\"parentSpanId\":\"VHh495GUkl0=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042325892104000\",\"endTimeUnixNano\":\"1763042326819385000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=38.5856814\\u0026longitude=68.760331\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"k4ESLnjIntM=\",\"parentSpanId\":\"q9X9jhj0kbo=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042329402505000\",\"endTimeUnixNano\":\"1763042329932028000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Santiago,%20Chile\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"OPn/NLRb7OU=\",\"parentSpanId\":\"bKmi3eZoF9E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042329932776000\",\"endTimeUnixNano\":\"1763042332067863000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Dushanbe,%20Tajikistan\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"7BjV1KWqCGg=\",\"parentSpanId\":\"/iqJRoiO3Hs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042338068561000\",\"endTimeUnixNano\":\"1763042378358074000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Santiago, + Chile.\\n\\nTrip Details:\\n- Destination: Santiago, Chile\\n- Duration: 7 + days\\n- Budget: moderate\\n- Interests: adventure\\n- Weather: Current temperature + is 24\xB0C with partly cloudy conditions. Upcoming days will be mostly clear + with temperatures ranging from 26\xB0C to 34\xB0C.\\n- Destination Info: Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and adventure interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS8gIwmKuNXg8IbIbSADLWloOWdb\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2336\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1737\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"599\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Adventurous + Santiago: A 7-Day Exploration\\\",\\\"destination\\\":\\\"Santiago, Chile\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$800-$1000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Santiago\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Santiago International Airport\\\",\\\"location\\\":\\\"Santiago International + Airport\\\",\\\"notes\\\":\\\"Pick up rental car or take a taxi to the accommodation.\\\"},{\\\"time\\\":\\\"11:30 + AM\\\",\\\"activity\\\":\\\"Check-in to accommodation\\\",\\\"location\\\":\\\"Hotel + Plaza El Bosque\\\",\\\"notes\\\":\\\"Moderate budget, centrally located.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Liguria\\\",\\\"location\\\":\\\"Liguria + Restaurant\\\",\\\"notes\\\":\\\"Try the local seafood dishes.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Walk around Plaza de Armas\\\",\\\"location\\\":\\\"Plaza + de Armas\\\",\\\"notes\\\":\\\"Explore the historic heart of Santiago.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Visit Cerro Santa Lucia\\\",\\\"location\\\":\\\"Cerro + Santa Lucia\\\",\\\"notes\\\":\\\"Enjoy panoramic views of the city.\\\"}],\\\"meals\\\":[\\\"Lunch + at Liguria\\\",\\\"Dinner at La Piojera\\\"],\\\"accommodation\\\":\\\"Hotel + Plaza El Bosque\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Cajon + del Maipo Adventure\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Hotel Plaza El Bosque\\\",\\\"notes\\\":\\\"Enjoy + a hearty breakfast.\\\"},{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Depart + for Cajon del Maipo\\\",\\\"location\\\":\\\"Cajon del Maipo\\\",\\\"notes\\\":\\\"A + beautiful area for outdoor activities.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Hiking + in the El Morado National Monument\\\",\\\"location\\\":\\\"El Morado\\\",\\\"notes\\\":\\\"Moderate + hike with stunning views.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Picnic + lunch in nature\\\",\\\"location\\\":\\\"El Morado\\\",\\\"notes\\\":\\\"Pack + a lunch to enjoy in the outdoors.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + Embalse El Yeso\\\",\\\"location\\\":\\\"Embalse El Yeso\\\",\\\"notes\\\":\\\"Take + photos and enjoy the scenery.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to Santiago\\\",\\\"location\\\":\\\"Santiago\\\",\\\"notes\\\":\\\"Relax + after a day of adventure.\\\"}],\\\"meals\\\":[\\\"Breakfast at the hotel\\\",\\\"Picnic + lunch\\\",\\\"Dinner at Los Buenos Muchachos\\\"],\\\"accommodation\\\":\\\"Hotel + Plaza El Bosque\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"cioloVIWits=\",\"parentSpanId\":\"dQSecaXxjXM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042378370827000\",\"endTimeUnixNano\":\"1763042433334128000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Dushanbe, + Tajikistan.\\n\\nTrip Details:\\n- Destination: Dushanbe, Tajikistan\\n- Duration: + 7 days\\n- Budget: moderate\\n- Interests: adventure\\n- Weather: Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\n- + Destination Info: Dushanbe is the capital and largest city of Tajikistan. + It is located in the Gissar Valley, bounded by mountainous terrains, and has + a population of over 1 million people.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and adventure interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS9Lz3AjDms2dEht5anB36agIYPs\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2499\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1923\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"576\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Adventure + Awaits in Dushanbe\\\",\\\"destination\\\":\\\"Dushanbe, Tajikistan\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$700\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and City Exploration\\\",\\\"activities\\\":[{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Dushanbe\\\",\\\"location\\\":\\\"Dushanbe International Airport\\\",\\\"notes\\\":\\\"Transfer + to hotel via taxi or arranged pickup.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Check-in + and freshen up\\\",\\\"location\\\":\\\"Hotel Atlas Dushanbe\\\",\\\"notes\\\":\\\"Moderate + hotel with good reviews.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Restaurant Shodlik\\\",\\\"location\\\":\\\"Shodlik Restaurant\\\",\\\"notes\\\":\\\"Try + local dishes like Plov and Shashlik.\\\"},{\\\"time\\\":\\\"01:30 PM\\\",\\\"activity\\\":\\\"Visit + the National Museum of Tajikistan\\\",\\\"location\\\":\\\"Dushanbe\\\",\\\"notes\\\":\\\"Explore + Tajik history and culture.\\\"},{\\\"time\\\":\\\"03:30 PM\\\",\\\"activity\\\":\\\"Walk + around Rudaki Park\\\",\\\"location\\\":\\\"Rudaki Park\\\",\\\"notes\\\":\\\"Enjoy + the greenery and relax.\\\"},{\\\"time\\\":\\\"06:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Restaurant Dushanbe\\\",\\\"location\\\":\\\"Restaurant Dushanbe\\\",\\\"notes\\\":\\\"Known + for traditional Tajik cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Shodlik\\\",\\\"Dinner + at Restaurant Dushanbe\\\"],\\\"accommodation\\\":\\\"Hotel Atlas Dushanbe\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Adventure + in the Mountains\\\",\\\"activities\\\":[{\\\"time\\\":\\\"08:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Hotel Atlas Dushanbe\\\",\\\"notes\\\":\\\"Start + your day with a hearty breakfast.\\\"},{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Day + trip to Fann Mountains\\\",\\\"location\\\":\\\"Fann Mountains\\\",\\\"notes\\\":\\\"Hire + a local guide for an adventure hike.\\\"},{\\\"time\\\":\\\"12:30 PM\\\",\\\"activity\\\":\\\"Picnic + lunch at Alaudin Lakes\\\",\\\"location\\\":\\\"Alaudin Lakes\\\",\\\"notes\\\":\\\"Pack + lunch from the hotel.\\\"},{\\\"time\\\":\\\"02:00 PM\\\",\\\"activity\\\":\\\"Hiking + around the lakes\\\",\\\"location\\\":\\\"Alaudin Lakes\\\",\\\"notes\\\":\\\"Enjoy + stunning views and take photos.\\\"},{\\\"time\\\":\\\"05:00 PM\\\",\\\"activity\\\":\\\"Return + to Dushanbe\\\",\\\"location\\\":\\\"Dushanbe\\\",\\\"notes\\\":\\\"Relax + after an adventurous day.\\\"},{\\\"time\\\":\\\"07:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Kebab House\\\",\\\"location\\\":\\\"Kebab House\\\",\\\"notes\\\":\\\"Savor + delicious kebabs and local drinks.\\\"}],\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '133017' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/b37b4c7727a54482f8c71cb88799c108 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"X6XgDzvu2/o=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214208334000\",\"endTimeUnixNano\":\"1763042288332434000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ykfIkleyfn8=\",\"parentSpanId\":\"X6XgDzvu2/o=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214208605000\",\"endTimeUnixNano\":\"1763042288332353000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"JhAH0yZx3Ik=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214215610000\",\"endTimeUnixNano\":\"1763042217450079000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"928\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"21\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"949\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"7Pd25D1LOvw=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042217450618000\",\"endTimeUnixNano\":\"1763042219069521000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"Un2+PGYQ9to=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042219072031000\",\"endTimeUnixNano\":\"1763042221139663000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1456\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"19\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1475\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"IbK2qPHFUEU=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042221140625000\",\"endTimeUnixNano\":\"1763042223209324000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"f1ybKu8yoWY=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042223210273000\",\"endTimeUnixNano\":\"1763042226350110000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1544\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"36\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1580\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"Mix/K/BkE/k=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042226350768000\",\"endTimeUnixNano\":\"1763042227769106000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ZIkq2QIEfJc=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042227770300000\",\"endTimeUnixNano\":\"1763042229857312000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1862\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"19\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1881\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"th//dB4A1jI=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042229857982000\",\"endTimeUnixNano\":\"1763042230935832000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"rnS972TaPFE=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042230937025000\",\"endTimeUnixNano\":\"1763042234891211000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b5b6d48194ac4ff233dc086dc6\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Bratislava' info=DestinationInfo(title='Bratislava', + summary='Capital and largest city of Slovakia', extract='Bratislava is the + capital and largest city of the Slovak Republic and the fourth largest of + all cities on the river Danube. Officially, the population of the city is + about 475,000; however, some sources estimate the daily number of people moving + around the city based on mobile phone SIM cards is more than 570,000. Bratislava + is in southwestern Slovakia at the foot of the Little Carpathians, occupying + both banks of the Danube and the left bank of the River Morava. The city is + situated on the border of three countries\u2014Slovakia, Austria, and Hungary\u2014and + is the only national capital to have land borders with two other sovereign + states. Its geographic position places it exceptionally close to the Austrian + capital Vienna, making them the closest pair of capital cities in Europe at + just 50 kilometres (31\\\\xa0mi) apart.')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"cultural + exploration, history, local cuisine\\\",\\\"weather_info\\\":\\\"Current temperature + is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\\",\\\"destination_details\\\":\\\"Bratislava is the + capital and largest city of Slovakia, known for its location by the Danube + River and proximity to Austria and Hungary. It's an important cultural, economic, + and educational center of the region.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_Ka1nJGRoPHD4PU7UUYNV3Gpi\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2097\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"136\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2233\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"4+Xf2IVfm8g=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042234891664000\",\"endTimeUnixNano\":\"1763042274301203000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"tlKdJZeE6c0=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042274303621000\",\"endTimeUnixNano\":\"1763042288331400000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b5b6d48194ac4ff233dc086dc6\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Bratislava' info=DestinationInfo(title='Bratislava', + summary='Capital and largest city of Slovakia', extract='Bratislava is the + capital and largest city of the Slovak Republic and the fourth largest of + all cities on the river Danube. Officially, the population of the city is + about 475,000; however, some sources estimate the daily number of people moving + around the city based on mobile phone SIM cards is more than 570,000. Bratislava + is in southwestern Slovakia at the foot of the Little Carpathians, occupying + both banks of the Danube and the left bank of the River Morava. The city is + situated on the border of three countries\u2014Slovakia, Austria, and Hungary\u2014and + is the only national capital to have land borders with two other sovereign + states. Its geographic position places it exceptionally close to the Austrian + capital Vienna, making them the closest pair of capital cities in Europe at + just 50 kilometres (31\\\\xa0mi) apart.')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b8467481948a834b801a722259\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"cultural + exploration, history, local cuisine\\\",\\\"weather_info\\\":\\\"Current temperature + is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\\",\\\"destination_details\\\":\\\"Bratislava is the + capital and largest city of Slovakia, known for its location by the Danube + River and proximity to Austria and Hungary. It's an important cultural, economic, + and educational center of the region.\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 5-day itinerary for Bratislava' itinerary=TravelItinerary(trip_title='Cultural + Journey Through Bratislava', destination='Bratislava', duration_days=5, total_budget_estimate='$800', + daily_plans=[DayPlan(day_number=1, date='2023-11-15', title='Arrival and Old + Town Exploration', activities=[DayActivity(time='10:00 AM', activity='Arrive + in Bratislava', location='Bratislava Airport', notes='Take a taxi or shuttle + to the city center.'), DayActivity(time='11:30 AM', activity='Check-in to + accommodation', location='Hotel Danubia', notes='Moderate hotel near the city + center.'), DayActivity(time='12:30 PM', activity='Lunch at Slovak Pub', location='Obchodn\xE1 + 62', notes='Try traditional Slovak dishes like bryndzov\xE9 halu\u0161ky.'), + DayActivity(time='2:00 PM', activity='Stroll through the Old Town', location='Bratislava + Old Town', notes=\\\"Visit St. Michael's Gate, Main Square, and the Old Town + Hall.\\\"), DayActivity(time='4:00 PM', activity='Visit the Bratislava City + Museum', location='Radni\u010Dn\xE1 1', notes=\\\"Learn about the city's history.\\\"), + DayActivity(time='6:00 PM', activity='Dinner at Flagship Restaurant', location='Hlavn\xE9 + n\xE1mestie 4', notes='Enjoy local cuisine with a modern twist.')], meals=['Lunch + at Slovak Pub', 'Dinner at Flagship Restaurant'], accommodation='Hotel Danubia'), + DayPlan(day_number=2, date='2023-11-16', title='Castles and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at hotel', location='Hotel Danubia', notes='Enjoy + a complimentary breakfast.'), DayActivity(time='9:30 AM', activity='Visit + Bratislava Castle', location='Bratislava Castle', notes='Explore the castle + and enjoy views of the Danube.'), DayActivity(time='12:00 PM', activity='Lunch + at Caf\xE9 23', location='Karpatsk\xE1 23', notes='A trendy caf\xE9 with local + dishes.'), DayActivity(time='1:30 PM', activity='Tour the Slovak National + Gallery', location='R\xE1zusovo n\xE1bre\u017Eie 2', notes='Explore Slovak + art and culture.'), DayActivity(time='4:00 PM', activity='Relax at Sad Janka + Kr\xE1\u013Ea park', location='\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_Ka1nJGRoPHD4PU7UUYNV3Gpi\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"I've + planned a 5-day cultural journey to Bratislava, Slovakia for you. Here's your + itinerary:\\n\\n### Cultural Journey Through Bratislava\\n\\n#### **Day 1: + Arrival and Old Town Exploration**\\n- **10:00 AM:** Arrive in Bratislava + - Shuttle or taxi to city center.\\n- **11:30 AM:** Check-in to Hotel Danubia.\\n- + **12:30 PM:** Lunch at Slovak Pub - Try bryndzov\xE9 halu\u0161ky.\\n- **2:00 + PM:** Stroll through the Old Town - Visit St. Michael's Gate.\\n- **4:00 PM:** + Visit the Bratislava City Museum.\\n- **6:00 PM:** Dinner at Flagship Restaurant.\\n\\n#### + **Day 2: Castles and Culture**\\n- **8:00 AM:** Breakfast at Hotel Danubia.\\n- + **9:30 AM:** Visit Bratislava Castle - Great views of the Danube.\\n- **12:00 + PM:** Lunch at Caf\xE9 23.\\n- **1:30 PM:** Tour the Slovak National Gallery.\\n- + **4:00 PM:** Relax at Sad Janka Kr\xE1\u013Ea park.\\n- **7:00 PM:** Dinner + at Modr\xE1 Hviezda.\\n\\n#### **Day 3: Day Trip to Devin Castle**\\n- **8:00 + AM:** Breakfast at Hotel Danubia.\\n- **9:30 AM:** Travel to Devin Castle.\\n- + **10:00 AM:** Explore Devin Castle.\\n- **12:30 PM:** Lunch at Restaurant + Devin.\\n- **2:00 PM:** Return to Bratislava.\\n- **3:00 PM:** Visit the Blue + Church.\\n- **5:00 PM:** Free time in Old Town.\\n- **7:00 PM:** Dinner at + U Zlateho Hruska.\\n\\n#### **Day 4: Art and History**\\n- **8:00 AM:** Breakfast + at Hotel Danubia.\\n- **9:30 AM:** Visit the Museum of Jewish Culture.\\n- + **11:30 AM:** Explore the Bratislava City Gallery.\\n- **1:00 PM:** Lunch + at Urban House.\\n- **3:00 PM:** Visit the Presidential Palace.\\n- **5:00 + PM:** Dinner at Primi.\\n\\n#### **Day 5: Departure and Local Markets**\\n- + **8:00 AM:** Breakfast at Hotel Danubia.\\n- **9:30 AM:** Visit the Old Market + Hall.\\n- **11:00 AM:** Free time for shopping.\\n- **1:00 PM:** Lunch at + the market.\\n- **2:30 PM:** Check-out from hotel.\\n- **3:00 PM:** Transfer + to airport.\\n\\n### Travel Tips\\n- Use public transport for getting around + the city.\\n- Carry an umbrella or rain jacket for rain on November 17 and + 19.\\n- Learn basic Slovak phrases to enhance local interactions.\\n\\n### + Packing Suggestions\\n- Warm clothing layers and comfortable walk\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"3764\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"608\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4372\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ga2ddWDpwj0=\",\"parentSpanId\":\"7Pd25D1LOvw=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042217954037000\",\"endTimeUnixNano\":\"1763042219061913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"qlkYoPsmsxQ=\",\"parentSpanId\":\"IbK2qPHFUEU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042222244554000\",\"endTimeUnixNano\":\"1763042223207393000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Bratislava\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"OxRjSied6Tk=\",\"parentSpanId\":\"Mix/K/BkE/k=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042226855593000\",\"endTimeUnixNano\":\"1763042227766872000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=48.1516988\\u0026longitude=17.1093063\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"hMj8FLIUcPo=\",\"parentSpanId\":\"th//dB4A1jI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042230364285000\",\"endTimeUnixNano\":\"1763042230934612000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Bratislava\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"kUQ5JjMwU3s=\",\"parentSpanId\":\"4+Xf2IVfm8g=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042235404005000\",\"endTimeUnixNano\":\"1763042274299868000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 5-day itinerary for Bratislava.\\n\\nTrip + Details:\\n- Destination: Bratislava\\n- Duration: 5 days\\n- Budget: moderate\\n- + Interests: cultural exploration, history, local cuisine\\n- Weather: Current + temperature is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\n- Destination Info: Bratislava is the capital and + largest city of Slovakia, known for its location by the Danube River and proximity + to Austria and Hungary. It's an important cultural, economic, and educational + center of the region.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and cultural exploration, history, local cuisine + interests.\\nEach day should have 3-5 activities with specific times, locations, + and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS72PQr8E6ISNBF6AHyK4FMvQhCE\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2032\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1443\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"589\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Cultural + Journey Through Bratislava\\\",\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"total_budget_estimate\\\":\\\"$800\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-15\\\",\\\"title\\\":\\\"Arrival + and Old Town Exploration\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Bratislava\\\",\\\"location\\\":\\\"Bratislava Airport\\\",\\\"notes\\\":\\\"Take + a taxi or shuttle to the city center.\\\"},{\\\"time\\\":\\\"11:30 AM\\\",\\\"activity\\\":\\\"Check-in + to accommodation\\\",\\\"location\\\":\\\"Hotel Danubia\\\",\\\"notes\\\":\\\"Moderate + hotel near the city center.\\\"},{\\\"time\\\":\\\"12:30 PM\\\",\\\"activity\\\":\\\"Lunch + at Slovak Pub\\\",\\\"location\\\":\\\"Obchodn\xE1 62\\\",\\\"notes\\\":\\\"Try + traditional Slovak dishes like bryndzov\xE9 halu\u0161ky.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Stroll through the Old Town\\\",\\\"location\\\":\\\"Bratislava + Old Town\\\",\\\"notes\\\":\\\"Visit St. Michael's Gate, Main Square, and + the Old Town Hall.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Visit + the Bratislava City Museum\\\",\\\"location\\\":\\\"Radni\u010Dn\xE1 1\\\",\\\"notes\\\":\\\"Learn + about the city's history.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Flagship Restaurant\\\",\\\"location\\\":\\\"Hlavn\xE9 n\xE1mestie 4\\\",\\\"notes\\\":\\\"Enjoy + local cuisine with a modern twist.\\\"}],\\\"meals\\\":[\\\"Lunch at Slovak + Pub\\\",\\\"Dinner at Flagship Restaurant\\\"],\\\"accommodation\\\":\\\"Hotel + Danubia\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-16\\\",\\\"title\\\":\\\"Castles + and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at hotel\\\",\\\"location\\\":\\\"Hotel Danubia\\\",\\\"notes\\\":\\\"Enjoy + a complimentary breakfast.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Bratislava Castle\\\",\\\"location\\\":\\\"Bratislava Castle\\\",\\\"notes\\\":\\\"Explore + the castle and enjoy views of the Danube.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Caf\xE9 23\\\",\\\"location\\\":\\\"Karpatsk\xE1 23\\\",\\\"notes\\\":\\\"A + trendy caf\xE9 with local dishes.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Tour + the Slovak National Gallery\\\",\\\"location\\\":\\\"R\xE1zusovo n\xE1bre\u017Eie + 2\\\",\\\"notes\\\":\\\"Explore Slovak art and culture.\\\"},{\\\"time\\\":\\\"4:00 + PM\\\",\\\"activity\\\":\\\"Relax at Sad Janka Kr\xE1\u013Ea park\\\",\\\"location\\\":\\\"Sad + Janka Kr\xE1\u013Ea\\\",\\\"notes\\\":\\\"Enjoy nature and views of the Danube.\\\"},{\\\"time\\\":\\\"7:00 + PM\\\",\\\"activity\\\":\\\"Dinner at Modr\xE1 Hviezda\\\",\\\"location\\\":\\\"Hradn\xE9 + n\xE1mestie 2\\\",\\\"notes\\\":\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '86232' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/42ff472d7feb6215bec0cf4e350675b2 + response: + body: + string: '{"batches":[{"resource":{"attributes":[{"key":"telemetry.sdk.language","value":{"stringValue":"python"}},{"key":"telemetry.sdk.name","value":{"stringValue":"opentelemetry"}},{"key":"telemetry.sdk.version","value":{"stringValue":"1.38.0"}},{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},"scopeSpans":[{"scope":{"name":"opentelemetry.instrumentation.openai_agents","version":"0.47.5"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"NPzxuz+vo54=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187236891000","endTimeUnixNano":"1763042189460181000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"gen_ai.prompt.0.role","value":{"stringValue":"user"}},{"key":"gen_ai.prompt.0.content","value":{"stringValue":"I + want to visit New York for 7 days with a moderate budget. I love history. + Create me an itinerary."}},{"key":"llm.request.functions.0.name","value":{"stringValue":"search_destinations"}},{"key":"llm.request.functions.0.description","value":{"stringValue":"Search + for travel destinations by region or subregion using REST Countries API."}},{"key":"llm.request.functions.0.parameters","value":{"stringValue":"{\"properties\": + {\"region\": {\"default\": \"\", \"description\": \"Region to search (e.g., + \\\"Europe\\\", \\\"Asia\\\", \\\"Americas\\\")\", \"title\": \"Region\", + \"type\": \"string\"}, \"subregion\": {\"default\": \"\", \"description\": + \"Subregion to search (e.g., \\\"Southern Europe\\\", \\\"Southeast Asia\\\")\", + \"title\": \"Subregion\", \"type\": \"string\"}}, \"title\": \"search_destinations_args\", + \"type\": \"object\", \"additionalProperties\": false, \"required\": [\"region\", + \"subregion\"]}"}},{"key":"llm.request.functions.1.name","value":{"stringValue":"get_location_coordinates"}},{"key":"llm.request.functions.1.description","value":{"stringValue":"Get + coordinates for a location using Nominatim (OpenStreetMap) API."}},{"key":"llm.request.functions.1.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the city or location\", \"title\": + \"Location Name\", \"type\": \"string\"}}, \"required\": [\"location_name\"], + \"title\": \"get_location_coordinates_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.2.name","value":{"stringValue":"get_weather_forecast"}},{"key":"llm.request.functions.2.description","value":{"stringValue":"Get + current weather and 7-day forecast using Open-Meteo API (no API key required)."}},{"key":"llm.request.functions.2.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the location\", \"title\": + \"Location Name\", \"type\": \"string\"}, \"latitude\": {\"description\": + \"Latitude coordinate\", \"title\": \"Latitude\", \"type\": \"number\"}, \"longitude\": + {\"description\": \"Longitude coordinate\", \"title\": \"Longitude\", \"type\": + \"number\"}}, \"required\": [\"location_name\", \"latitude\", \"longitude\"], + \"title\": \"get_weather_forecast_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.3.name","value":{"stringValue":"get_destination_info"}},{"key":"llm.request.functions.3.description","value":{"stringValue":"Get + information about a destination from Wikipedia API."}},{"key":"llm.request.functions.3.parameters","value":{"stringValue":"{\"properties\": + {\"destination_name\": {\"description\": \"Name of the destination\", \"title\": + \"Destination Name\", \"type\": \"string\"}}, \"required\": [\"destination_name\"], + \"title\": \"get_destination_info_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.4.name","value":{"stringValue":"calculate_travel_distance"}},{"key":"llm.request.functions.4.description","value":{"stringValue":"Calculate + distance and estimated flight time between two locations.\nUses Haversine + formula for distance calculation."}},{"key":"llm.request.functions.4.parameters","value":{"stringValue":"{\"properties\": + {\"from_location\": {\"description\": \"Starting location name\", \"title\": + \"From Location\", \"type\": \"string\"}, \"to_location\": {\"description\": + \"Destination location name\", \"title\": \"To Location\", \"type\": \"string\"}, + \"from_lat\": {\"description\": \"Starting latitude\", \"title\": \"From Lat\", + \"type\": \"number\"}, \"from_lon\": {\"description\": \"Starting longitude\", + \"title\": \"From Lon\", \"type\": \"number\"}, \"to_lat\": {\"description\": + \"Destination latitude\", \"title\": \"To Lat\", \"type\": \"number\"}, \"to_lon\": + {\"description\": \"Destination longitude\", \"title\": \"To Lon\", \"type\": + \"number\"}}, \"required\": [\"from_location\", \"to_location\", \"from_lat\", + \"from_lon\", \"to_lat\", \"to_lon\"], \"title\": \"calculate_travel_distance_args\", + \"type\": \"object\", \"additionalProperties\": false}"}},{"key":"llm.request.functions.5.name","value":{"stringValue":"create_itinerary"}},{"key":"llm.request.functions.5.description","value":{"stringValue":"Create + a detailed day-by-day travel itinerary using AI."}},{"key":"llm.request.functions.5.parameters","value":{"stringValue":"{\"properties\": + {\"destination\": {\"description\": \"Main destination for the trip\", \"title\": + \"Destination\", \"type\": \"string\"}, \"duration_days\": {\"description\": + \"Number of days for the trip\", \"title\": \"Duration Days\", \"type\": \"integer\"}, + \"budget\": {\"description\": \"Budget level (budget, moderate, luxury)\", + \"title\": \"Budget\", \"type\": \"string\"}, \"interests\": {\"description\": + \"Traveler interests (e.g., food, history, nature)\", \"title\": \"Interests\", + \"type\": \"string\"}, \"weather_info\": {\"default\": \"\", \"description\": + \"Weather forecast information (optional)\", \"title\": \"Weather Info\", + \"type\": \"string\"}, \"destination_details\": {\"default\": \"\", \"description\": + \"Additional destination details (optional)\", \"title\": \"Destination Details\", + \"type\": \"string\"}}, \"required\": [\"destination\", \"duration_days\", + \"budget\", \"interests\", \"weather_info\", \"destination_details\"], \"title\": + \"create_itinerary_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"gen_ai.request.temperature","value":{"doubleValue":1}},{"key":"gen_ai.request.top_p","value":{"doubleValue":1}},{"key":"gen_ai.request.model","value":{"stringValue":"gpt-4o-2024-08-06"}},{"key":"gen_ai.completion.0.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.0.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.0.tool_calls.0.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.0.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\"}"}},{"key":"gen_ai.completion.0.tool_calls.0.id","value":{"stringValue":"call_M6Cz1ZtgBBRVhPAKwGhP4HkH"}},{"key":"gen_ai.completion.1.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.1.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.1.tool_calls.0.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.1.tool_calls.0.arguments","value":{"stringValue":"{\"destination_name\":\"New + York\"}"}},{"key":"gen_ai.completion.1.tool_calls.0.id","value":{"stringValue":"call_XjU0qIs2w9toMdl7I78qNPRd"}},{"key":"gen_ai.completion.2.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.2.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.2.tool_calls.0.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.2.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\",\"latitude\":40.7128,\"longitude\":-74.006}"}},{"key":"gen_ai.completion.2.tool_calls.0.id","value":{"stringValue":"call_vW1iVMpxm4W5VAjz3uvhFwxl"}},{"key":"gen_ai.usage.prompt_tokens","value":{"intValue":"313"}},{"key":"gen_ai.usage.completion_tokens","value":{"intValue":"81"}},{"key":"llm.usage.total_tokens","value":{"intValue":"394"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Jn+55BUIsg8=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042192790536000","endTimeUnixNano":"1763042197342144000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"qUtAVv3MWrg=","parentSpanId":"i9g02JupVjo=","name":"Travel + Planner Agent.agent","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187234430000","endTimeUnixNano":"1763042197342199000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"agent"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"i9g02JupVjo=","name":"Agent + Workflow","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187232503000","endTimeUnixNano":"1763042197342213000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"workflow"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.workflow.name","value":{"stringValue":"Agent + Workflow"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"ndtaGw2O47w=","parentSpanId":"qUtAVv3MWrg=","name":"get_destination_info.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461414000","endTimeUnixNano":"1763042192787831000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"lAvl8cSGCdQ=","parentSpanId":"qUtAVv3MWrg=","name":"get_weather_forecast.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461614000","endTimeUnixNano":"1763042192787979000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"DRPQ4fXYGOk=","parentSpanId":"qUtAVv3MWrg=","name":"get_location_coordinates.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461045000","endTimeUnixNano":"1763042192788272000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}}]},{"scope":{"name":"opentelemetry.instrumentation.requests","version":"0.59b0"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"gvjOX9XKnIQ=","parentSpanId":"ndtaGw2O47w=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042189966888000","endTimeUnixNano":"1763042190649032000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://en.wikipedia.org/api/rest_v1/page/summary/New%20York"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Vd7J6WeIkI0=","parentSpanId":"lAvl8cSGCdQ=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042190650755000","endTimeUnixNano":"1763042191744238000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://api.open-meteo.com/v1/forecast?latitude=40.7128\u0026longitude=-74.006\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\u0026timezone=auto\u0026forecast_days=7"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"QO7ZImsbB1g=","parentSpanId":"DRPQ4fXYGOk=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042191747300000","endTimeUnixNano":"1763042192786263000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://nominatim.openstreetmap.org/search?q=New+York\u0026format=json\u0026limit=1"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}}]}]}]}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '14143' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/9a8cb895bee63fabb705329a05ced33b + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"VVGqP3Zlh/I=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057714246000\",\"endTimeUnixNano\":\"1763042185226841000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ebIwige/t/I=\",\"parentSpanId\":\"VVGqP3Zlh/I=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057715150000\",\"endTimeUnixNano\":\"1763042185226760000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"XmMF4QV1t5I=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042160420265000\",\"endTimeUnixNano\":\"1763042185224042000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31f412c8193854f3d40a67569bb\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3203a048193a1db4cd095de78a1\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.19.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Malta' itinerary=TravelItinerary(trip_title='Malta: + A Luxurious Journey Through History and Culture', destination='Malta', duration_days=7, + total_budget_estimate='\u20AC5000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Valletta', activities=[DayActivity(time='10:00 AM', activity='Check + into the hotel.', location='Palazzo Consiglia, Valletta', notes='Luxurious + boutique hotel with a historic feel.'), DayActivity(time='12:00 PM', activity='Lunch + at the hotel restaurant.', location='Palazzo Consiglia', notes='Try local + specialties.'), DayActivity(time='2:00 PM', activity='Explore Valletta on + foot.', location='Valletta', notes=\\\"Visit St. John's Co-Cathedral and the + Upper Barracca Gardens.\\\"), DayActivity(time='5:00 PM', activity='Enjoy + a sunset at the Barracca Lift.', location='Upper Barracca Gardens', notes='Stunning + views of the Grand Harbour.'), DayActivity(time='7:30 PM', activity='Dinner + at The Harbour Club.', location='Valletta', notes='Fine dining with Mediterranean + cuisine.')], meals=['Lunch at Palazzo Consiglia', 'Dinner at The Harbour Club'], + accommodation='Palazzo Consiglia, Valletta'), DayPlan(day_number=2, date='2023-10-02', + title='Historical Wonders of Mdina', activities=[DayActivity(time='9:00 AM', + activity='Breakfast at the hotel.', location='Palazzo Consiglia', notes='Enjoy + a gourmet breakfast.'), DayActivity(time='10:30 AM', activity='Visit Mdina, + the Silent City.', location='Mdina', notes='Explore the narrow streets and + historic architecture.'), DayActivity(time='1:00 PM', activity='Lunch at Fontanella + Tea Garden.', location='Mdina', notes='Famous for its cakes and views.'), + DayActivity(time='3:00 PM', activity=\\\"Visit St. Paul's Cathedral and the + Mdina Dungeons.\\\", location='Mdina', notes='Immerse in the history of the + city.'), DayActivity(time='6:00 PM', activity='Return to Valletta.', location='Valletta', + notes='Free evening to relax.'), DayActivity(time='8:00 PM', activity='Dinner + at La Viletta.', location='Valletta', n\"}},{\"key\":\"gen_ai.prompt.19.tool_call_id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Paradise + Found: A Luxurious Escape to Barbados', destination='Barbados', duration_days=7, + total_budget_estimate='$5,000', daily_plans=[DayPlan(day_number=1, date='2023-11-01', + title='Arrival and Beach Relaxation', activities=[DayActivity(time='10:00 + AM', activity='Arrival at Grantley Adams International Airport', location='Bridgetown', + notes='Private transfer to hotel.'), DayActivity(time='12:00 PM', activity='Check-in + at Sandy Lane Hotel', location='Sandy Lane, St. James', notes='Enjoy a welcome + drink upon arrival.'), DayActivity(time='1:00 PM', activity='Lunch at The + Bajan Blue', location='Sandy Lane Hotel', notes='Try the fresh catch of the + day.'), DayActivity(time='3:00 PM', activity='Relax at the beach', location='Sandy + Lane Beach', notes='Enjoy complimentary beach services and cabanas.'), DayActivity(time='7:00 + PM', activity=\\\"Dinner at L'Acajou\\\", location='Sandy Lane Hotel', notes='Reserve + a table for an oceanfront dining experience.')], meals=['Lunch at The Bajan + Blue', \\\"Dinner at L'Acajou\\\"], accommodation='Sandy Lane Hotel'), DayPlan(day_number=2, + date='2023-11-02', title='Exploring the Nature and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at The Bajan Blue', location='Sandy Lane Hotel', + notes='Buffet breakfast included.'), DayActivity(time='9:30 AM', activity=\\\"Visit + Harrison's Cave\\\", location='Welches, St. Thomas', notes='Guided tram tour + of the limestone caves.'), DayActivity(time='12:00 PM', activity='Lunch at + The Cliff', location='The Cliff, St. James', notes='One of the best views + in Barbados.'), DayActivity(time='2:00 PM', activity='Explore the Andromeda + Botanic Gardens', location='Bathsheba', notes='Stroll through beautiful tropical + plants.'), DayActivity(time='5:00 PM', activity='Return to hotel and relax + by the pool', location='Sandy Lane Hotel', notes='Enjoy the sunset views.'), + DayActivity(time='8:00 PM', activity='Dinner at The Tides', location='Holetown', + notes='Fin\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a luxurious winter getaway itinerary for two amazing destinations: Malta and + Barbados. You can choose either for a memorable experience!\\n\\n### Malta: + A Luxurious Journey Through History and Culture\\n\\n#### Overview:\\n- **Duration:** + 7 Days\\n- **Budget:** \u20AC5000\\n- **Interests:** History, culture, relaxation\\n- + **Weather:** Partly cloudy, 14\xB0C to 25\xB0C\\n\\n#### Highlights:\\n- **Explore + Valletta:** Discover historic sites like St. John's Co-Cathedral and the Upper + Barracca Gardens.\\n- **Visit Mdina:** Wander through the narrow streets of + the Silent City.\\n- **Cruise the Blue Lagoon:** Relax and swim in crystal-clear + waters on Comino Island.\\n- **Art and Culture in Valletta:** Enjoy museums, + the Grand Master's Palace, and traditional Maltese cuisine.\\n- **Day in Gozo:** + Experience UNESCO sites and enjoy local cuisine in Xlendi Bay.\\n- **Relaxation + and Spa Day:** Indulge in luxury spa treatments and wine tasting.\\n\\n#### + Suggested Activities:\\n- Stroll through the National Museum of Archaeology.\\n- + Enjoy a Michelin-starred dining experience at Noni.\\n- Unwind at the historic + and luxurious Palazzo Consiglia.\\n\\n---\\n\\n### Barbados: Paradise Found\\n\\n#### + Overview:\\n- **Duration:** 7 Days\\n- **Budget:** $5,000\\n- **Interests:** + Beach, nature, relaxation\\n- **Weather:** Mainly clear with occasional rain, + 26\xB0C to 28\xB0C\\n\\n#### Highlights:\\n- **Stay at Sandy Lane:** Experience + luxury at a top-notch hotel.\\n- **Catamaran Cruise:** Snorkel and swim with + turtles.\\n- **Visit Harrison's Cave:** Explore stunning limestone formations.\\n- + **Beach Relaxation:** Enjoy water sports and sunbathing at Sandy Lane Beach.\\n- + **Cultural Sightseeing:** Visit the Barbados Museum and Andromeda Botanic + Gardens.\\n- **Island Adventure:** Discover the Animal Flower Cave and Bathsheba + Beach.\\n\\n#### Suggested Activities:\\n- Indulge in a private yoga session + on the beach.\\n- Savor local flavors at dining spots like The Cliff and Oistins + Fish Fry.\\n- Book a spa treatment for ultimate relaxation.\\n\\nChoose either + Malta for its rich history and culture or Barbados for its tropical para\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"6963\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"482\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7445\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"embCySXGZiM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057716128000\",\"endTimeUnixNano\":\"1763042059661983000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"60\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"525\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"mC8CCwLW76g=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663097000\",\"endTimeUnixNano\":\"1763042062451067000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ssDCKShkL44=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663477000\",\"endTimeUnixNano\":\"1763042062451172000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fuu6tO+Ndlo=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042062452499000\",\"endTimeUnixNano\":\"1763042064799092000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1003\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1055\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fvHJdvNTMws=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064799830000\",\"endTimeUnixNano\":\"1763042067739773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"T8dJZDmT4I4=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064800127000\",\"endTimeUnixNano\":\"1763042067739862000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"v6cWcKHOCjI=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042067741423000\",\"endTimeUnixNano\":\"1763042070448846000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1077\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"86\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1163\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"UEIsxC37pwE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449031000\",\"endTimeUnixNano\":\"1763042072801957000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"THKreibx8ug=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449103000\",\"endTimeUnixNano\":\"1763042072802080000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"YBTnmbTN6jE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042072803790000\",\"endTimeUnixNano\":\"1763042075107212000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1391\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1443\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"SxqLZKfWCmA=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108148000\",\"endTimeUnixNano\":\"1763042076670490000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"5dBBk3l1eiQ=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108516000\",\"endTimeUnixNano\":\"1763042076670556000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"cE+1FFJhlnU=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076671577000\",\"endTimeUnixNano\":\"1763042082126494000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1535\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"208\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1743\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"QAlZHx6RuLM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082127730000\",\"endTimeUnixNano\":\"1763042160416987000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"th2IYCV4hsE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082128207000\",\"endTimeUnixNano\":\"1763042160417136000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HDPGse/8x4o=\",\"parentSpanId\":\"mC8CCwLW76g=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042060166394000\",\"endTimeUnixNano\":\"1763042061283475000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"IA+JMvfXJl8=\",\"parentSpanId\":\"ssDCKShkL44=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042061306153000\",\"endTimeUnixNano\":\"1763042062439682000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"PzmXYx0yNzo=\",\"parentSpanId\":\"fvHJdvNTMws=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042065903652000\",\"endTimeUnixNano\":\"1763042066847763000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Malta\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ON9RLT3j6a4=\",\"parentSpanId\":\"T8dJZDmT4I4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042066849545000\",\"endTimeUnixNano\":\"1763042067737708000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"M2Q2FV2cXIU=\",\"parentSpanId\":\"UEIsxC37pwE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042070951475000\",\"endTimeUnixNano\":\"1763042071877256000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=35.8885993\\u0026longitude=14.4476911\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Ze33HN9DUpc=\",\"parentSpanId\":\"THKreibx8ug=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042071879722000\",\"endTimeUnixNano\":\"1763042072800019000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HKpm5tCLJzU=\",\"parentSpanId\":\"SxqLZKfWCmA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042075611055000\",\"endTimeUnixNano\":\"1763042076145487000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Malta\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"lAzYqhlHfpg=\",\"parentSpanId\":\"5dBBk3l1eiQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076148467000\",\"endTimeUnixNano\":\"1763042076669422000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Znd3vlNcirg=\",\"parentSpanId\":\"th2IYCV4hsE=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042123087205000\",\"endTimeUnixNano\":\"1763042160414874000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: beach, nature, relaxation\\n- Weather: Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\n- Destination Info: Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the luxury budget level and beach, nature, + relaxation interests.\\nEach day should have 3-5 activities with specific + times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS5EtpivASLkttPJzZ83ik15FlLX\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2260\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1719\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"541\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Paradise + Found: A Luxurious Escape to Barbados\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$5,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-01\\\",\\\"title\\\":\\\"Arrival + and Beach Relaxation\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrival + at Grantley Adams International Airport\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Private + transfer to hotel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at Sandy Lane Hotel\\\",\\\"location\\\":\\\"Sandy Lane, St. James\\\",\\\"notes\\\":\\\"Enjoy + a welcome drink upon arrival.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Try + the fresh catch of the day.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at the beach\\\",\\\"location\\\":\\\"Sandy Lane Beach\\\",\\\"notes\\\":\\\"Enjoy + complimentary beach services and cabanas.\\\"},{\\\"time\\\":\\\"7:00 PM\\\",\\\"activity\\\":\\\"Dinner + at L'Acajou\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Reserve + a table for an oceanfront dining experience.\\\"}],\\\"meals\\\":[\\\"Lunch + at The Bajan Blue\\\",\\\"Dinner at L'Acajou\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-02\\\",\\\"title\\\":\\\"Exploring + the Nature and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Buffet + breakfast included.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Harrison's Cave\\\",\\\"location\\\":\\\"Welches, St. Thomas\\\",\\\"notes\\\":\\\"Guided + tram tour of the limestone caves.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Cliff\\\",\\\"location\\\":\\\"The Cliff, St. James\\\",\\\"notes\\\":\\\"One + of the best views in Barbados.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + the Andromeda Botanic Gardens\\\",\\\"location\\\":\\\"Bathsheba\\\",\\\"notes\\\":\\\"Stroll + through beautiful tropical plants.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to hotel and relax by the pool\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Enjoy + the sunset views.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Tides\\\",\\\"location\\\":\\\"Holetown\\\",\\\"notes\\\":\\\"Fine + dining with a local twist.\\\"}],\\\"meals\\\":[\\\"Breakfast at The Bajan + Blue\\\",\\\"Lunch at The Cliff\\\",\\\"Dinner at The Tides\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"BVSE4lyy6Ng=\",\"parentSpanId\":\"QAlZHx6RuLM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042082648743000\",\"endTimeUnixNano\":\"1763042123074678000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Malta.\\n\\nTrip + Details:\\n- Destination: Malta\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: history, culture, relaxation\\n- Weather: Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\n- Destination Info: Malta is an island country + in Southern Europe, located in the Mediterranean Sea. The country's capital, + Valletta, is a historic city rich in culture and architecture. Official languages + are Maltese and English.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the luxury budget level and history, culture, relaxation interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS4aBtO0u5Rq9bvPgdgOeSH0n75R\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2342\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1792\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"550\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Malta: + A Luxurious Journey Through History and Culture\\\",\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC5000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Valletta\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia, Valletta\\\",\\\"notes\\\":\\\"Luxurious + boutique hotel with a historic feel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Try + local specialties.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + Valletta on foot.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Visit + St. John's Co-Cathedral and the Upper Barracca Gardens.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a sunset at the Barracca Lift.\\\",\\\"location\\\":\\\"Upper + Barracca Gardens\\\",\\\"notes\\\":\\\"Stunning views of the Grand Harbour.\\\"},{\\\"time\\\":\\\"7:30 + PM\\\",\\\"activity\\\":\\\"Dinner at The Harbour Club.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Fine + dining with Mediterranean cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Palazzo + Consiglia\\\",\\\"Dinner at The Harbour Club\\\"],\\\"accommodation\\\":\\\"Palazzo + Consiglia, Valletta\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Historical + Wonders of Mdina\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Enjoy + a gourmet breakfast.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Visit + Mdina, the Silent City.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Explore + the narrow streets and historic architecture.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Fontanella Tea Garden.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Famous + for its cakes and views.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + St. Paul's Cathedral and the Mdina Dungeons.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Immerse + in the history of the city.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Return + to Valletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Free + evening to relax.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at La Viletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Authentic + Maltese cuisine.\\\"}],\\\"meals\\\":[\\\"Breakfast at Palazzo Consiglia\\\",\\\"Lunch + at Fontanella Tea Garden\\\",\\\"Dinner at La Viletta\\\"],\\\"accommodation\\\":\\\"Palazzo\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '127530' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/693bde2879b745ff467c20bf9cd2ea7a + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"pApb0LsOSf0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984002122000\",\"endTimeUnixNano\":\"1763042055706374000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Ty846xocHPs=\",\"parentSpanId\":\"pApb0LsOSf0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984003244000\",\"endTimeUnixNano\":\"1763042055706244000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"r4Bxnys8Ajs=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042004652154000\",\"endTimeUnixNano\":\"1763042043092842000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"dvw9i3v4lK0=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042043095808000\",\"endTimeUnixNano\":\"1763042055704401000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2d2455c81978681b90b08ba66c7\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Nature + \\u0026 Adventure in New Zealand: A Week of Wonders', destination='New Zealand', + duration_days=7, total_budget_estimate='$1,500 - $2,000', daily_plans=[DayPlan(day_number=1, + date='2023-10-01', title='Arrival in Auckland', activities=[DayActivity(time='10:00 + AM', activity='Arrive at Auckland Airport', location='Auckland Airport', notes='Collect + rental car from the airport.'), DayActivity(time='12:00 PM', activity='Lunch + at Depot Eatery', location='Auckland', notes='Try local favorites like the + green-lipped mussels.'), DayActivity(time='2:00 PM', activity='Visit Auckland + War Memorial Museum', location='Domain Drive, Auckland', notes='Explore Maori + culture and New Zealand\u2019s natural history.'), DayActivity(time='4:00 + PM', activity='Stroll in Auckland Domain', location='Auckland', notes='Enjoy + the gardens and scenic views.'), DayActivity(time='6:00 PM', activity='Dinner + at The Glass Goose Bar \\u0026 Eatery', location='Auckland', notes='Outdoor + seating available.')], meals=['Lunch at Depot Eatery', 'Dinner at The Glass + Goose Bar \\u0026 Eatery'], accommodation='SkyCity Hotel, Auckland'), DayPlan(day_number=2, + date='2023-10-02', title='Exploring Rotorua', activities=[DayActivity(time='8:00 + AM', activity='Drive to Rotorua', location='Auckland to Rotorua (approx. 3 + hours)', notes='Enjoy scenic views along the way.'), DayActivity(time='11:00 + AM', activity='Visit Te Puia', location='Rotorua', notes='See geysers and + learn about Maori culture.'), DayActivity(time='1:00 PM', activity='Lunch + at Puku Puku Caf\xE9', location='Rotorua', notes='Sample local dishes.'), + DayActivity(time='3:00 PM', activity='Relax in the Polynesian Spa', location='Rotorua', + notes='Enjoy geothermal pools.'), DayActivity(time='6:00 PM', activity='Dinner + at Eat Streat', location='Rotorua', notes='Choose from various food stalls.')], + meals=['Lunch at Puku Puku Caf\xE9', 'Dinner at Eat Streat'], accommodation='Regent + of Rotorua'), DayPlan(day_number=3, date='2023-1\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"### + Nature \\u0026 Adventure in New Zealand: A Week of Wonders\\n\\n#### Destination: + New Zealand\\n- **Duration:** 7 Days\\n- **Budget:** Moderate ($1,500 - $2,000)\\n- + **Interests:** Nature, Adventure, Culture\\n\\n#### Weather Insights\\n- Current + conditions are overcast with a temperature of 7.6\xB0C.\\n- Expect mild temperatures + with some precipitation next week, ranging from 4\xB0C to 22\xB0C.\\n\\n#### + Trip Overview\\n\\n**Day 1: Arrival in Auckland**\\n- **10:00 AM:** Arrive + at Auckland Airport - Collect rental car.\\n- **12:00 PM:** Lunch at Depot + Eatery - Try local green-lipped mussels.\\n- **2:00 PM:** Visit Auckland War + Memorial Museum - Explore Maori culture.\\n- **4:00 PM:** Stroll in Auckland + Domain - Enjoy gardens and views.\\n- **6:00 PM:** Dinner at The Glass Goose + Bar \\u0026 Eatery.\\n- **Accommodation:** SkyCity Hotel, Auckland\\n\\n**Day + 2: Exploring Rotorua**\\n- **8:00 AM:** Drive to Rotorua (3 hours).\\n- **11:00 + AM:** Visit Te Puia - See geysers and Maori culture.\\n- **1:00 PM:** Lunch + at Puku Puku Caf\xE9 - Sample local dishes.\\n- **3:00 PM:** Relax in Polynesian + Spa - Enjoy geothermal pools.\\n- **6:00 PM:** Dinner at Eat Streat.\\n- **Accommodation:** + Regent of Rotorua\\n\\n**Day 3: Adventure in Taupo**\\n- **8:00 AM:** Drive + to Taupo (1 hour).\\n- **10:00 AM:** Visit Huka Falls.\\n- **12:00 PM:** Lunch + at The Boat Shed Caf\xE9.\\n- **2:00 PM:** Skydiving or Jet Boating - Book + in advance.\\n- **5:00 PM:** Relax at Taupo Lake Front.\\n- **Accommodation:** + Millennium Hotel Taupo\\n\\n**Day 4: Tongariro National Park**\\n- **7:00 + AM:** Drive to Tongariro (1 hour).\\n- **8:30 AM:** Begin Tongariro Alpine + Crossing - Full-day hike.\\n- **12:00 PM:** Lunch on the trail - Pack a picnic.\\n- + **4:00 PM:** Complete hike - Stunning views.\\n- **6:00 PM:** Dinner at a + local lodge.\\n- **Accommodation:** Chateau Tongariro Hotel\\n\\n**Day 5: + Wellington Culture Day**\\n- **8:00 AM:** Drive to Wellington (4 hours).\\n- + **12:00 PM:** Lunch at Fidel's Caf\xE9.\\n- **2:00 PM:** Visit Te Papa Tongarewa + Museum - Free entry.\\n- **4:00 PM:** Walk along Wellington Waterfront.\\n- + **6:00 PM:** Dinner at Ortega Fish Shack.\\n- **A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4339\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"846\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5185\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"IS6vpvXSyWc=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984005653000\",\"endTimeUnixNano\":\"1763041985613511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"936\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"959\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"brUFs0ciw1M=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041985613918000\",\"endTimeUnixNano\":\"1763041987102501000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Irx+5vAh2RA=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041987103912000\",\"endTimeUnixNano\":\"1763041990567857000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"801\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8D1wUHRUnJY=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568009000\",\"endTimeUnixNano\":\"1763041993540330000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Z0YMsVUAJiE=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568056000\",\"endTimeUnixNano\":\"1763041993540426000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"YOs61ryvpF4=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041993541968000\",\"endTimeUnixNano\":\"1763041995719255000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"876\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"84\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"960\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"4JCF5eBk2tQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719607000\",\"endTimeUnixNano\":\"1763041998146609000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ixR9+7Z/j1o=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719759000\",\"endTimeUnixNano\":\"1763041998146773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8mbS0moocyI=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041998148255000\",\"endTimeUnixNano\":\"1763041999477499000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2374\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"18\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2392\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ZXf5rcFUcLQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041999478441000\",\"endTimeUnixNano\":\"1763042000768653000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"1qbdTW8b/2E=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042000769229000\",\"endTimeUnixNano\":\"1763042004651429000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2545\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2687\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"NKOz3ltzNm0=\",\"parentSpanId\":\"r4Bxnys8Ajs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042005169975000\",\"endTimeUnixNano\":\"1763042043090298000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: nature, adventure, culture\\n- Weather: Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\n- Destination Info: New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It's known for varied topography and sharp mountain peaks, + including the Southern Alps. The capital city is Wellington, and its most + populous city is Auckland.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and nature, adventure, culture interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS3K2CF576d4YsisW6wGQEds7rmH\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2169\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1573\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"596\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Nature + \\u0026 Adventure in New Zealand: A Week of Wonders\\\",\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500 + - $2,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + rental car from the airport.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Depot Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Try + local favorites like the green-lipped mussels.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Domain + Drive, Auckland\\\",\\\"notes\\\":\\\"Explore Maori culture and New Zealand\u2019s + natural history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Stroll + in Auckland Domain\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Enjoy + the gardens and scenic views.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Outdoor + seating available.\\\"}],\\\"meals\\\":[\\\"Lunch at Depot Eatery\\\",\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + Rotorua\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Rotorua\\\",\\\"location\\\":\\\"Auckland to Rotorua (approx. 3 hours)\\\",\\\"notes\\\":\\\"Enjoy + scenic views along the way.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit + Te Puia\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"See geysers + and learn about Maori culture.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Puku Puku Caf\xE9\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Sample + local dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + in the Polynesian Spa\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Enjoy + geothermal pools.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Eat Streat\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Choose + from various food stalls.\\\"}],\\\"meals\\\":[\\\"Lunch at Puku Puku Caf\xE9\\\",\\\"Dinner + at Eat Streat\\\"],\\\"accommodation\\\":\\\"Regent of Rotorua\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Adventure + in Taupo\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Taupo\\\",\\\"location\\\":\\\"Rotorua to Taupo (approx. 1 hour)\\\",\\\"notes\\\":\\\"Stop + at Huk\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"056VGM+8Nok=\",\"parentSpanId\":\"brUFs0ciw1M=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041986115747000\",\"endTimeUnixNano\":\"1763041987094583000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"kvjaqj4KYrQ=\",\"parentSpanId\":\"8D1wUHRUnJY=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041991671179000\",\"endTimeUnixNano\":\"1763041992478589000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"u+rad2kmPnI=\",\"parentSpanId\":\"Z0YMsVUAJiE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041992480116000\",\"endTimeUnixNano\":\"1763041993538494000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ETHKBPTcA2s=\",\"parentSpanId\":\"4JCF5eBk2tQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041996225152000\",\"endTimeUnixNano\":\"1763041997195369000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"jQ6zmabmw2M=\",\"parentSpanId\":\"ixR9+7Z/j1o=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041997198300000\",\"endTimeUnixNano\":\"1763041998144145000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"0YqSiXc6Hig=\",\"parentSpanId\":\"ZXf5rcFUcLQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041999981250000\",\"endTimeUnixNano\":\"1763042000767913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '98254' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/eed63641fc3ffa3ea40a166e2604edd2 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"kDfoXagrNmk=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306563000\",\"endTimeUnixNano\":\"1763041981994302000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"5t6oCNV1x24=\",\"parentSpanId\":\"kDfoXagrNmk=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306752000\",\"endTimeUnixNano\":\"1763041981994217000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"CPDw9H+t3W0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041900556562000\",\"endTimeUnixNano\":\"1763041909681624000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are some great beach destinations for families in the Americas to consider:\\n\\n1. + **Barbados (Caribbean)**\\n - Language: English\\n - Currency: BBD\\n + \ - Known for its beautiful sandy beaches and vibrant culture.\\n\\n2. **Puerto + Rico (Caribbean)**\\n - Languages: English, Spanish\\n - Currency: USD\\n + \ - Offers lovely beaches, lush rainforests, and a rich cultural heritage.\\n\\n3. + **Turks and Caicos Islands (Caribbean)**\\n - Language: English\\n - Currency: + USD\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\n\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\n\\nI'll gather weather + information and details about Barbados and then create your itinerary.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"664\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"221\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"885\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"gjU8x51ljN8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909682975000\",\"endTimeUnixNano\":\"1763041912228857000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"saPJCTZOa8E=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909683354000\",\"endTimeUnixNano\":\"1763041912228748000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"v4pJsgk8eu8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041912233276000\",\"endTimeUnixNano\":\"1763041916478547000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1859\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"37\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1896\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vW7dC7113KM=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041916479365000\",\"endTimeUnixNano\":\"1763041923081358000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"S5LEq3ro4i0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041923083562000\",\"endTimeUnixNano\":\"1763041926952714000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2178\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"127\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2305\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"0revCekYick=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041926953355000\",\"endTimeUnixNano\":\"1763041968277636000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"awXbMZjA1IQ=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041968278645000\",\"endTimeUnixNano\":\"1763041981992200000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e284b4408193b787ece129274ff2\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Beach + Bliss in Barbados: A 7-Day Tropical Escape', destination='Barbados', duration_days=7, + total_budget_estimate='$1,500', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and Beach Day', activities=[DayActivity(time='12:00 PM', activity='Check-in + at hotel', location='Turtle Beach by Elegant Hotels', notes='Enjoy welcome + drinks and settle into your room.'), DayActivity(time='1:30 PM', activity='Lunch + at the hotel restaurant', location='Turtle Beach', notes='Try the grilled + fish with local spices.'), DayActivity(time='3:00 PM', activity='Relax at + Dover Beach', location='Dover Beach', notes='Beach chairs and umbrellas available + for rent.'), DayActivity(time='6:00 PM', activity='Sunset viewing', location='Dover + Beach', notes='Perfect spot for photos.'), DayActivity(time='7:30 PM', activity='Dinner + at The Oistins Fish Fry', location='Oistins', notes='A vibrant atmosphere + with fresh seafood.')], meals=['Lunch at Turtle Beach', 'Dinner at Oistins + Fish Fry'], accommodation='Turtle Beach by Elegant Hotels'), DayPlan(day_number=2, + date='2023-10-02', title='Explore Bridgetown', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at the hotel', location='Turtle Beach', notes='Buffet + style with local and international options.'), DayActivity(time='9:30 AM', + activity='Visit the Barbados Museum \\u0026 Historical Society', location='Bridgetown', + notes=\\\"Learn about the island's history.\\\"), DayActivity(time='12:00 + PM', activity='Lunch at Brown Sugar', location='Bridgetown', notes='Taste + local dishes in an outdoor setting.'), DayActivity(time='2:00 PM', activity='Explore + George Street and local shops', location='Bridgetown', notes='Pick up souvenirs + and local crafts.'), DayActivity(time='4:00 PM', activity='Relax at Pebbles + Beach', location='Pebbles Beach', notes='Enjoy swimming and sunbathing.'), + DayActivity(time='6:00 PM', activity='Dinner at The Cliff', location='St. + James', notes='Reservations recommend\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for your family vacation in Barbados, focusing + on beach activities and cultural experiences:\\n\\n### Trip Title: Beach Bliss + in Barbados: A 7-Day Tropical Escape\\n\\n#### **Day 1: Arrival and Beach + Day**\\n- **12:00 PM:** Check-in at Turtle Beach by Elegant Hotels. Enjoy + welcome drinks and settle in.\\n- **1:30 PM:** Lunch at the hotel restaurant. + Try the grilled fish with local spices.\\n- **3:00 PM:** Relax at Dover Beach. + Beach chairs and umbrellas available.\\n- **6:00 PM:** Enjoy a sunset viewing + at Dover Beach\u2014perfect for photos.\\n- **7:30 PM:** Dinner at The Oistins + Fish Fry. Vibrant atmosphere with fresh seafood.\\n\\n#### **Day 2: Explore + Bridgetown**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** + Visit the Barbados Museum \\u0026 Historical Society. Learn about the island's + history.\\n- **12:00 PM:** Lunch at Brown Sugar. Taste local dishes.\\n- **2:00 + PM:** Explore George Street and local shops for souvenirs.\\n- **4:00 PM:** + Relax at Pebbles Beach. Enjoy swimming and sunbathing.\\n- **6:00 PM:** Dinner + at The Cliff. Stunning ocean views, reservations recommended.\\n\\n#### **Day + 3: Catamaran Adventure**\\n- **7:30 AM:** Breakfast at Turtle Beach.\\n- **9:00 + AM:** Catamaran cruise from Bridgetown. Swim with turtles and snorkel at coral + reefs.\\n- **12:30 PM:** Lunch on board the catamaran.\\n- **3:00 PM:** Return + to the hotel, relax at the beach or pool.\\n- **7:00 PM:** Dinner at The Round + House in Bathsheba. Try local fish dishes.\\n\\n#### **Day 4: Beach Hopping**\\n- + **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** Visit Crane Beach. + Famous for its pink sand.\\n- **12:00 PM:** Lunch at The Crane Beach Resort.\\n- + **2:00 PM:** Head to Bottom Bay Beach. Less crowded and perfect for relaxation.\\n- + **5:00 PM:** Return to hotel.\\n- **7:30 PM:** Dinner at Naru Restaurant and + Lounge. Local and Asian fusion cuisine.\\n\\n#### **Day 5: Island Culture + and Relaxation**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **10:00 AM:** + Visit St. Nicholas Abbey. Tour the plantation and rum distillery.\\n- **1:00 + PM:** Lunch at the A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4121\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"842\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4963\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vSd7s42xrTw=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894311147000\",\"endTimeUnixNano\":\"1763041898739189000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"932\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"22\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"954\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"dkkP9YWRUaI=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041898739699000\",\"endTimeUnixNano\":\"1763041900553722000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"jB510DMs6/8=\",\"parentSpanId\":\"saPJCTZOa8E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910186602000\",\"endTimeUnixNano\":\"1763041910919083000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"I4smyApmv2I=\",\"parentSpanId\":\"gjU8x51ljN8=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910919911000\",\"endTimeUnixNano\":\"1763041912227844000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wsif3cTB5R0=\",\"parentSpanId\":\"vW7dC7113KM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041916984585000\",\"endTimeUnixNano\":\"1763041923078888000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"T263X02AHSc=\",\"parentSpanId\":\"dkkP9YWRUaI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041899242488000\",\"endTimeUnixNano\":\"1763041900545636000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wJnvML6OlKo=\",\"parentSpanId\":\"0revCekYick=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041927471141000\",\"endTimeUnixNano\":\"1763041968276800000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: beaches\\n- Weather: Current temperature 27.4\xB0C, mainly clear + conditions. Forecast: mostly warm weather with some rain expected later in + the week.\\n- Destination Info: Barbados is an island country in the Caribbean + located in the Atlantic Ocean. It is part of the Lesser Antilles of the West + Indies and the easternmost island of the Caribbean region. It lies on the + boundary of the South American and Caribbean plates. Its capital and largest + city is Bridgetown.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and beaches interests.\\nEach day should have 3-5 + activities with specific times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS25L4VnHyasIegXuwEirm30SBWf\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2288\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1717\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"571\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Beach + Bliss in Barbados: A 7-Day Tropical Escape\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Beach Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at hotel\\\",\\\"location\\\":\\\"Turtle Beach by Elegant Hotels\\\",\\\"notes\\\":\\\"Enjoy + welcome drinks and settle into your room.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Try + the grilled fish with local spices.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at Dover Beach\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Beach + chairs and umbrellas available for rent.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Sunset + viewing\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Perfect + spot for photos.\\\"},{\\\"time\\\":\\\"7:30 PM\\\",\\\"activity\\\":\\\"Dinner + at The Oistins Fish Fry\\\",\\\"location\\\":\\\"Oistins\\\",\\\"notes\\\":\\\"A + vibrant atmosphere with fresh seafood.\\\"}],\\\"meals\\\":[\\\"Lunch at Turtle + Beach\\\",\\\"Dinner at Oistins Fish Fry\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Explore + Bridgetown\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Buffet + style with local and international options.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + the Barbados Museum \\u0026 Historical Society\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Learn + about the island's history.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Brown Sugar\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Taste + local dishes in an outdoor setting.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + George Street and local shops\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Pick + up souvenirs and local crafts.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Relax + at Pebbles Beach\\\",\\\"location\\\":\\\"Pebbles Beach\\\",\\\"notes\\\":\\\"Enjoy + swimming and sunbathing.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Cliff\\\",\\\"location\\\":\\\"St. James\\\",\\\"notes\\\":\\\"Reservations + recommended for stunning ocean views.\\\"}],\\\"meals\\\":[\\\"Breakfast at + Turtle Beach\\\",\\\"Lunch at Brown Sugar\\\",\\\"Dinner at The Cliff\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '79035' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoSearchSpans.test_search_spans_with_operation.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchSpans.test_search_spans_with_operation.yaml new file mode 100644 index 0000000..67570b4 --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchSpans.test_search_spans_with_operation.yaml @@ -0,0 +1,69 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B%7D&limit=1000 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}},{"traceID":"b37b4c7727a54482f8c71cb88799c108","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042214208334000","durationMs":74124,"spanSet":{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18},"spanSets":[{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18}],"serviceStats":{"travel-agent-demo2":{"spanCount":18}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"43192","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Vary: + - Accept-Encoding + content-length: + - '6560' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B+resource.service.name+%3D+%22travel-agent-demo%22+%7D&limit=100 + response: + body: + string: '{"traces":[],"metrics":{"inspectedBytes":"38573","completedJobs":1,"totalJobs":1}}' + headers: + Content-Length: + - '82' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoSearchSpans.test_search_spans_with_service_filter.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchSpans.test_search_spans_with_service_filter.yaml new file mode 100644 index 0000000..67a8ca7 --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchSpans.test_search_spans_with_service_filter.yaml @@ -0,0 +1,2707 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B%7D&limit=1000 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}},{"traceID":"b37b4c7727a54482f8c71cb88799c108","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042214208334000","durationMs":74124,"spanSet":{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18},"spanSets":[{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18}],"serviceStats":{"travel-agent-demo2":{"spanCount":18}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"43192","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Vary: + - Accept-Encoding + content-length: + - '6560' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B+resource.service.name+%3D+%22travel-agent-demo%22+%7D&limit=40 + response: + body: + string: '{"traces":[{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"59731","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Vary: + - Accept-Encoding + content-length: + - '5763' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/42ff472d7feb6215bec0cf4e350675b2 + response: + body: + string: '{"batches":[{"resource":{"attributes":[{"key":"telemetry.sdk.language","value":{"stringValue":"python"}},{"key":"telemetry.sdk.name","value":{"stringValue":"opentelemetry"}},{"key":"telemetry.sdk.version","value":{"stringValue":"1.38.0"}},{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},"scopeSpans":[{"scope":{"name":"opentelemetry.instrumentation.openai_agents","version":"0.47.5"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"NPzxuz+vo54=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187236891000","endTimeUnixNano":"1763042189460181000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"gen_ai.prompt.0.role","value":{"stringValue":"user"}},{"key":"gen_ai.prompt.0.content","value":{"stringValue":"I + want to visit New York for 7 days with a moderate budget. I love history. + Create me an itinerary."}},{"key":"llm.request.functions.0.name","value":{"stringValue":"search_destinations"}},{"key":"llm.request.functions.0.description","value":{"stringValue":"Search + for travel destinations by region or subregion using REST Countries API."}},{"key":"llm.request.functions.0.parameters","value":{"stringValue":"{\"properties\": + {\"region\": {\"default\": \"\", \"description\": \"Region to search (e.g., + \\\"Europe\\\", \\\"Asia\\\", \\\"Americas\\\")\", \"title\": \"Region\", + \"type\": \"string\"}, \"subregion\": {\"default\": \"\", \"description\": + \"Subregion to search (e.g., \\\"Southern Europe\\\", \\\"Southeast Asia\\\")\", + \"title\": \"Subregion\", \"type\": \"string\"}}, \"title\": \"search_destinations_args\", + \"type\": \"object\", \"additionalProperties\": false, \"required\": [\"region\", + \"subregion\"]}"}},{"key":"llm.request.functions.1.name","value":{"stringValue":"get_location_coordinates"}},{"key":"llm.request.functions.1.description","value":{"stringValue":"Get + coordinates for a location using Nominatim (OpenStreetMap) API."}},{"key":"llm.request.functions.1.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the city or location\", \"title\": + \"Location Name\", \"type\": \"string\"}}, \"required\": [\"location_name\"], + \"title\": \"get_location_coordinates_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.2.name","value":{"stringValue":"get_weather_forecast"}},{"key":"llm.request.functions.2.description","value":{"stringValue":"Get + current weather and 7-day forecast using Open-Meteo API (no API key required)."}},{"key":"llm.request.functions.2.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the location\", \"title\": + \"Location Name\", \"type\": \"string\"}, \"latitude\": {\"description\": + \"Latitude coordinate\", \"title\": \"Latitude\", \"type\": \"number\"}, \"longitude\": + {\"description\": \"Longitude coordinate\", \"title\": \"Longitude\", \"type\": + \"number\"}}, \"required\": [\"location_name\", \"latitude\", \"longitude\"], + \"title\": \"get_weather_forecast_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.3.name","value":{"stringValue":"get_destination_info"}},{"key":"llm.request.functions.3.description","value":{"stringValue":"Get + information about a destination from Wikipedia API."}},{"key":"llm.request.functions.3.parameters","value":{"stringValue":"{\"properties\": + {\"destination_name\": {\"description\": \"Name of the destination\", \"title\": + \"Destination Name\", \"type\": \"string\"}}, \"required\": [\"destination_name\"], + \"title\": \"get_destination_info_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.4.name","value":{"stringValue":"calculate_travel_distance"}},{"key":"llm.request.functions.4.description","value":{"stringValue":"Calculate + distance and estimated flight time between two locations.\nUses Haversine + formula for distance calculation."}},{"key":"llm.request.functions.4.parameters","value":{"stringValue":"{\"properties\": + {\"from_location\": {\"description\": \"Starting location name\", \"title\": + \"From Location\", \"type\": \"string\"}, \"to_location\": {\"description\": + \"Destination location name\", \"title\": \"To Location\", \"type\": \"string\"}, + \"from_lat\": {\"description\": \"Starting latitude\", \"title\": \"From Lat\", + \"type\": \"number\"}, \"from_lon\": {\"description\": \"Starting longitude\", + \"title\": \"From Lon\", \"type\": \"number\"}, \"to_lat\": {\"description\": + \"Destination latitude\", \"title\": \"To Lat\", \"type\": \"number\"}, \"to_lon\": + {\"description\": \"Destination longitude\", \"title\": \"To Lon\", \"type\": + \"number\"}}, \"required\": [\"from_location\", \"to_location\", \"from_lat\", + \"from_lon\", \"to_lat\", \"to_lon\"], \"title\": \"calculate_travel_distance_args\", + \"type\": \"object\", \"additionalProperties\": false}"}},{"key":"llm.request.functions.5.name","value":{"stringValue":"create_itinerary"}},{"key":"llm.request.functions.5.description","value":{"stringValue":"Create + a detailed day-by-day travel itinerary using AI."}},{"key":"llm.request.functions.5.parameters","value":{"stringValue":"{\"properties\": + {\"destination\": {\"description\": \"Main destination for the trip\", \"title\": + \"Destination\", \"type\": \"string\"}, \"duration_days\": {\"description\": + \"Number of days for the trip\", \"title\": \"Duration Days\", \"type\": \"integer\"}, + \"budget\": {\"description\": \"Budget level (budget, moderate, luxury)\", + \"title\": \"Budget\", \"type\": \"string\"}, \"interests\": {\"description\": + \"Traveler interests (e.g., food, history, nature)\", \"title\": \"Interests\", + \"type\": \"string\"}, \"weather_info\": {\"default\": \"\", \"description\": + \"Weather forecast information (optional)\", \"title\": \"Weather Info\", + \"type\": \"string\"}, \"destination_details\": {\"default\": \"\", \"description\": + \"Additional destination details (optional)\", \"title\": \"Destination Details\", + \"type\": \"string\"}}, \"required\": [\"destination\", \"duration_days\", + \"budget\", \"interests\", \"weather_info\", \"destination_details\"], \"title\": + \"create_itinerary_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"gen_ai.request.temperature","value":{"doubleValue":1}},{"key":"gen_ai.request.top_p","value":{"doubleValue":1}},{"key":"gen_ai.request.model","value":{"stringValue":"gpt-4o-2024-08-06"}},{"key":"gen_ai.completion.0.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.0.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.0.tool_calls.0.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.0.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\"}"}},{"key":"gen_ai.completion.0.tool_calls.0.id","value":{"stringValue":"call_M6Cz1ZtgBBRVhPAKwGhP4HkH"}},{"key":"gen_ai.completion.1.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.1.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.1.tool_calls.0.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.1.tool_calls.0.arguments","value":{"stringValue":"{\"destination_name\":\"New + York\"}"}},{"key":"gen_ai.completion.1.tool_calls.0.id","value":{"stringValue":"call_XjU0qIs2w9toMdl7I78qNPRd"}},{"key":"gen_ai.completion.2.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.2.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.2.tool_calls.0.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.2.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\",\"latitude\":40.7128,\"longitude\":-74.006}"}},{"key":"gen_ai.completion.2.tool_calls.0.id","value":{"stringValue":"call_vW1iVMpxm4W5VAjz3uvhFwxl"}},{"key":"gen_ai.usage.prompt_tokens","value":{"intValue":"313"}},{"key":"gen_ai.usage.completion_tokens","value":{"intValue":"81"}},{"key":"llm.usage.total_tokens","value":{"intValue":"394"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Jn+55BUIsg8=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042192790536000","endTimeUnixNano":"1763042197342144000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"qUtAVv3MWrg=","parentSpanId":"i9g02JupVjo=","name":"Travel + Planner Agent.agent","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187234430000","endTimeUnixNano":"1763042197342199000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"agent"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"i9g02JupVjo=","name":"Agent + Workflow","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187232503000","endTimeUnixNano":"1763042197342213000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"workflow"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.workflow.name","value":{"stringValue":"Agent + Workflow"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"ndtaGw2O47w=","parentSpanId":"qUtAVv3MWrg=","name":"get_destination_info.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461414000","endTimeUnixNano":"1763042192787831000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"lAvl8cSGCdQ=","parentSpanId":"qUtAVv3MWrg=","name":"get_weather_forecast.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461614000","endTimeUnixNano":"1763042192787979000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"DRPQ4fXYGOk=","parentSpanId":"qUtAVv3MWrg=","name":"get_location_coordinates.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461045000","endTimeUnixNano":"1763042192788272000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}}]},{"scope":{"name":"opentelemetry.instrumentation.requests","version":"0.59b0"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"gvjOX9XKnIQ=","parentSpanId":"ndtaGw2O47w=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042189966888000","endTimeUnixNano":"1763042190649032000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://en.wikipedia.org/api/rest_v1/page/summary/New%20York"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Vd7J6WeIkI0=","parentSpanId":"lAvl8cSGCdQ=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042190650755000","endTimeUnixNano":"1763042191744238000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://api.open-meteo.com/v1/forecast?latitude=40.7128\u0026longitude=-74.006\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\u0026timezone=auto\u0026forecast_days=7"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"QO7ZImsbB1g=","parentSpanId":"DRPQ4fXYGOk=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042191747300000","endTimeUnixNano":"1763042192786263000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://nominatim.openstreetmap.org/search?q=New+York\u0026format=json\u0026limit=1"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}}]}]}]}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '14143' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/9a8cb895bee63fabb705329a05ced33b + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"VVGqP3Zlh/I=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057714246000\",\"endTimeUnixNano\":\"1763042185226841000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ebIwige/t/I=\",\"parentSpanId\":\"VVGqP3Zlh/I=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057715150000\",\"endTimeUnixNano\":\"1763042185226760000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"XmMF4QV1t5I=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042160420265000\",\"endTimeUnixNano\":\"1763042185224042000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31f412c8193854f3d40a67569bb\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3203a048193a1db4cd095de78a1\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.19.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Malta' itinerary=TravelItinerary(trip_title='Malta: + A Luxurious Journey Through History and Culture', destination='Malta', duration_days=7, + total_budget_estimate='\u20AC5000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Valletta', activities=[DayActivity(time='10:00 AM', activity='Check + into the hotel.', location='Palazzo Consiglia, Valletta', notes='Luxurious + boutique hotel with a historic feel.'), DayActivity(time='12:00 PM', activity='Lunch + at the hotel restaurant.', location='Palazzo Consiglia', notes='Try local + specialties.'), DayActivity(time='2:00 PM', activity='Explore Valletta on + foot.', location='Valletta', notes=\\\"Visit St. John's Co-Cathedral and the + Upper Barracca Gardens.\\\"), DayActivity(time='5:00 PM', activity='Enjoy + a sunset at the Barracca Lift.', location='Upper Barracca Gardens', notes='Stunning + views of the Grand Harbour.'), DayActivity(time='7:30 PM', activity='Dinner + at The Harbour Club.', location='Valletta', notes='Fine dining with Mediterranean + cuisine.')], meals=['Lunch at Palazzo Consiglia', 'Dinner at The Harbour Club'], + accommodation='Palazzo Consiglia, Valletta'), DayPlan(day_number=2, date='2023-10-02', + title='Historical Wonders of Mdina', activities=[DayActivity(time='9:00 AM', + activity='Breakfast at the hotel.', location='Palazzo Consiglia', notes='Enjoy + a gourmet breakfast.'), DayActivity(time='10:30 AM', activity='Visit Mdina, + the Silent City.', location='Mdina', notes='Explore the narrow streets and + historic architecture.'), DayActivity(time='1:00 PM', activity='Lunch at Fontanella + Tea Garden.', location='Mdina', notes='Famous for its cakes and views.'), + DayActivity(time='3:00 PM', activity=\\\"Visit St. Paul's Cathedral and the + Mdina Dungeons.\\\", location='Mdina', notes='Immerse in the history of the + city.'), DayActivity(time='6:00 PM', activity='Return to Valletta.', location='Valletta', + notes='Free evening to relax.'), DayActivity(time='8:00 PM', activity='Dinner + at La Viletta.', location='Valletta', n\"}},{\"key\":\"gen_ai.prompt.19.tool_call_id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Paradise + Found: A Luxurious Escape to Barbados', destination='Barbados', duration_days=7, + total_budget_estimate='$5,000', daily_plans=[DayPlan(day_number=1, date='2023-11-01', + title='Arrival and Beach Relaxation', activities=[DayActivity(time='10:00 + AM', activity='Arrival at Grantley Adams International Airport', location='Bridgetown', + notes='Private transfer to hotel.'), DayActivity(time='12:00 PM', activity='Check-in + at Sandy Lane Hotel', location='Sandy Lane, St. James', notes='Enjoy a welcome + drink upon arrival.'), DayActivity(time='1:00 PM', activity='Lunch at The + Bajan Blue', location='Sandy Lane Hotel', notes='Try the fresh catch of the + day.'), DayActivity(time='3:00 PM', activity='Relax at the beach', location='Sandy + Lane Beach', notes='Enjoy complimentary beach services and cabanas.'), DayActivity(time='7:00 + PM', activity=\\\"Dinner at L'Acajou\\\", location='Sandy Lane Hotel', notes='Reserve + a table for an oceanfront dining experience.')], meals=['Lunch at The Bajan + Blue', \\\"Dinner at L'Acajou\\\"], accommodation='Sandy Lane Hotel'), DayPlan(day_number=2, + date='2023-11-02', title='Exploring the Nature and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at The Bajan Blue', location='Sandy Lane Hotel', + notes='Buffet breakfast included.'), DayActivity(time='9:30 AM', activity=\\\"Visit + Harrison's Cave\\\", location='Welches, St. Thomas', notes='Guided tram tour + of the limestone caves.'), DayActivity(time='12:00 PM', activity='Lunch at + The Cliff', location='The Cliff, St. James', notes='One of the best views + in Barbados.'), DayActivity(time='2:00 PM', activity='Explore the Andromeda + Botanic Gardens', location='Bathsheba', notes='Stroll through beautiful tropical + plants.'), DayActivity(time='5:00 PM', activity='Return to hotel and relax + by the pool', location='Sandy Lane Hotel', notes='Enjoy the sunset views.'), + DayActivity(time='8:00 PM', activity='Dinner at The Tides', location='Holetown', + notes='Fin\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a luxurious winter getaway itinerary for two amazing destinations: Malta and + Barbados. You can choose either for a memorable experience!\\n\\n### Malta: + A Luxurious Journey Through History and Culture\\n\\n#### Overview:\\n- **Duration:** + 7 Days\\n- **Budget:** \u20AC5000\\n- **Interests:** History, culture, relaxation\\n- + **Weather:** Partly cloudy, 14\xB0C to 25\xB0C\\n\\n#### Highlights:\\n- **Explore + Valletta:** Discover historic sites like St. John's Co-Cathedral and the Upper + Barracca Gardens.\\n- **Visit Mdina:** Wander through the narrow streets of + the Silent City.\\n- **Cruise the Blue Lagoon:** Relax and swim in crystal-clear + waters on Comino Island.\\n- **Art and Culture in Valletta:** Enjoy museums, + the Grand Master's Palace, and traditional Maltese cuisine.\\n- **Day in Gozo:** + Experience UNESCO sites and enjoy local cuisine in Xlendi Bay.\\n- **Relaxation + and Spa Day:** Indulge in luxury spa treatments and wine tasting.\\n\\n#### + Suggested Activities:\\n- Stroll through the National Museum of Archaeology.\\n- + Enjoy a Michelin-starred dining experience at Noni.\\n- Unwind at the historic + and luxurious Palazzo Consiglia.\\n\\n---\\n\\n### Barbados: Paradise Found\\n\\n#### + Overview:\\n- **Duration:** 7 Days\\n- **Budget:** $5,000\\n- **Interests:** + Beach, nature, relaxation\\n- **Weather:** Mainly clear with occasional rain, + 26\xB0C to 28\xB0C\\n\\n#### Highlights:\\n- **Stay at Sandy Lane:** Experience + luxury at a top-notch hotel.\\n- **Catamaran Cruise:** Snorkel and swim with + turtles.\\n- **Visit Harrison's Cave:** Explore stunning limestone formations.\\n- + **Beach Relaxation:** Enjoy water sports and sunbathing at Sandy Lane Beach.\\n- + **Cultural Sightseeing:** Visit the Barbados Museum and Andromeda Botanic + Gardens.\\n- **Island Adventure:** Discover the Animal Flower Cave and Bathsheba + Beach.\\n\\n#### Suggested Activities:\\n- Indulge in a private yoga session + on the beach.\\n- Savor local flavors at dining spots like The Cliff and Oistins + Fish Fry.\\n- Book a spa treatment for ultimate relaxation.\\n\\nChoose either + Malta for its rich history and culture or Barbados for its tropical para\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"6963\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"482\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7445\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"embCySXGZiM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057716128000\",\"endTimeUnixNano\":\"1763042059661983000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"60\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"525\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"mC8CCwLW76g=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663097000\",\"endTimeUnixNano\":\"1763042062451067000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ssDCKShkL44=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663477000\",\"endTimeUnixNano\":\"1763042062451172000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fuu6tO+Ndlo=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042062452499000\",\"endTimeUnixNano\":\"1763042064799092000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1003\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1055\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fvHJdvNTMws=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064799830000\",\"endTimeUnixNano\":\"1763042067739773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"T8dJZDmT4I4=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064800127000\",\"endTimeUnixNano\":\"1763042067739862000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"v6cWcKHOCjI=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042067741423000\",\"endTimeUnixNano\":\"1763042070448846000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1077\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"86\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1163\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"UEIsxC37pwE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449031000\",\"endTimeUnixNano\":\"1763042072801957000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"THKreibx8ug=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449103000\",\"endTimeUnixNano\":\"1763042072802080000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"YBTnmbTN6jE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042072803790000\",\"endTimeUnixNano\":\"1763042075107212000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1391\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1443\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"SxqLZKfWCmA=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108148000\",\"endTimeUnixNano\":\"1763042076670490000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"5dBBk3l1eiQ=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108516000\",\"endTimeUnixNano\":\"1763042076670556000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"cE+1FFJhlnU=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076671577000\",\"endTimeUnixNano\":\"1763042082126494000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1535\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"208\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1743\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"QAlZHx6RuLM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082127730000\",\"endTimeUnixNano\":\"1763042160416987000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"th2IYCV4hsE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082128207000\",\"endTimeUnixNano\":\"1763042160417136000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HDPGse/8x4o=\",\"parentSpanId\":\"mC8CCwLW76g=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042060166394000\",\"endTimeUnixNano\":\"1763042061283475000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"IA+JMvfXJl8=\",\"parentSpanId\":\"ssDCKShkL44=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042061306153000\",\"endTimeUnixNano\":\"1763042062439682000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"PzmXYx0yNzo=\",\"parentSpanId\":\"fvHJdvNTMws=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042065903652000\",\"endTimeUnixNano\":\"1763042066847763000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Malta\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ON9RLT3j6a4=\",\"parentSpanId\":\"T8dJZDmT4I4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042066849545000\",\"endTimeUnixNano\":\"1763042067737708000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"M2Q2FV2cXIU=\",\"parentSpanId\":\"UEIsxC37pwE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042070951475000\",\"endTimeUnixNano\":\"1763042071877256000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=35.8885993\\u0026longitude=14.4476911\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Ze33HN9DUpc=\",\"parentSpanId\":\"THKreibx8ug=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042071879722000\",\"endTimeUnixNano\":\"1763042072800019000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HKpm5tCLJzU=\",\"parentSpanId\":\"SxqLZKfWCmA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042075611055000\",\"endTimeUnixNano\":\"1763042076145487000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Malta\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"lAzYqhlHfpg=\",\"parentSpanId\":\"5dBBk3l1eiQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076148467000\",\"endTimeUnixNano\":\"1763042076669422000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Znd3vlNcirg=\",\"parentSpanId\":\"th2IYCV4hsE=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042123087205000\",\"endTimeUnixNano\":\"1763042160414874000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: beach, nature, relaxation\\n- Weather: Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\n- Destination Info: Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the luxury budget level and beach, nature, + relaxation interests.\\nEach day should have 3-5 activities with specific + times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS5EtpivASLkttPJzZ83ik15FlLX\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2260\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1719\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"541\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Paradise + Found: A Luxurious Escape to Barbados\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$5,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-01\\\",\\\"title\\\":\\\"Arrival + and Beach Relaxation\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrival + at Grantley Adams International Airport\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Private + transfer to hotel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at Sandy Lane Hotel\\\",\\\"location\\\":\\\"Sandy Lane, St. James\\\",\\\"notes\\\":\\\"Enjoy + a welcome drink upon arrival.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Try + the fresh catch of the day.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at the beach\\\",\\\"location\\\":\\\"Sandy Lane Beach\\\",\\\"notes\\\":\\\"Enjoy + complimentary beach services and cabanas.\\\"},{\\\"time\\\":\\\"7:00 PM\\\",\\\"activity\\\":\\\"Dinner + at L'Acajou\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Reserve + a table for an oceanfront dining experience.\\\"}],\\\"meals\\\":[\\\"Lunch + at The Bajan Blue\\\",\\\"Dinner at L'Acajou\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-02\\\",\\\"title\\\":\\\"Exploring + the Nature and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Buffet + breakfast included.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Harrison's Cave\\\",\\\"location\\\":\\\"Welches, St. Thomas\\\",\\\"notes\\\":\\\"Guided + tram tour of the limestone caves.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Cliff\\\",\\\"location\\\":\\\"The Cliff, St. James\\\",\\\"notes\\\":\\\"One + of the best views in Barbados.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + the Andromeda Botanic Gardens\\\",\\\"location\\\":\\\"Bathsheba\\\",\\\"notes\\\":\\\"Stroll + through beautiful tropical plants.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to hotel and relax by the pool\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Enjoy + the sunset views.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Tides\\\",\\\"location\\\":\\\"Holetown\\\",\\\"notes\\\":\\\"Fine + dining with a local twist.\\\"}],\\\"meals\\\":[\\\"Breakfast at The Bajan + Blue\\\",\\\"Lunch at The Cliff\\\",\\\"Dinner at The Tides\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"BVSE4lyy6Ng=\",\"parentSpanId\":\"QAlZHx6RuLM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042082648743000\",\"endTimeUnixNano\":\"1763042123074678000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Malta.\\n\\nTrip + Details:\\n- Destination: Malta\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: history, culture, relaxation\\n- Weather: Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\n- Destination Info: Malta is an island country + in Southern Europe, located in the Mediterranean Sea. The country's capital, + Valletta, is a historic city rich in culture and architecture. Official languages + are Maltese and English.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the luxury budget level and history, culture, relaxation interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS4aBtO0u5Rq9bvPgdgOeSH0n75R\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2342\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1792\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"550\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Malta: + A Luxurious Journey Through History and Culture\\\",\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC5000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Valletta\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia, Valletta\\\",\\\"notes\\\":\\\"Luxurious + boutique hotel with a historic feel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Try + local specialties.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + Valletta on foot.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Visit + St. John's Co-Cathedral and the Upper Barracca Gardens.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a sunset at the Barracca Lift.\\\",\\\"location\\\":\\\"Upper + Barracca Gardens\\\",\\\"notes\\\":\\\"Stunning views of the Grand Harbour.\\\"},{\\\"time\\\":\\\"7:30 + PM\\\",\\\"activity\\\":\\\"Dinner at The Harbour Club.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Fine + dining with Mediterranean cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Palazzo + Consiglia\\\",\\\"Dinner at The Harbour Club\\\"],\\\"accommodation\\\":\\\"Palazzo + Consiglia, Valletta\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Historical + Wonders of Mdina\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Enjoy + a gourmet breakfast.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Visit + Mdina, the Silent City.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Explore + the narrow streets and historic architecture.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Fontanella Tea Garden.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Famous + for its cakes and views.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + St. Paul's Cathedral and the Mdina Dungeons.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Immerse + in the history of the city.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Return + to Valletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Free + evening to relax.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at La Viletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Authentic + Maltese cuisine.\\\"}],\\\"meals\\\":[\\\"Breakfast at Palazzo Consiglia\\\",\\\"Lunch + at Fontanella Tea Garden\\\",\\\"Dinner at La Viletta\\\"],\\\"accommodation\\\":\\\"Palazzo\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '127530' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/693bde2879b745ff467c20bf9cd2ea7a + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"pApb0LsOSf0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984002122000\",\"endTimeUnixNano\":\"1763042055706374000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Ty846xocHPs=\",\"parentSpanId\":\"pApb0LsOSf0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984003244000\",\"endTimeUnixNano\":\"1763042055706244000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"r4Bxnys8Ajs=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042004652154000\",\"endTimeUnixNano\":\"1763042043092842000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"dvw9i3v4lK0=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042043095808000\",\"endTimeUnixNano\":\"1763042055704401000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2d2455c81978681b90b08ba66c7\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Nature + \\u0026 Adventure in New Zealand: A Week of Wonders', destination='New Zealand', + duration_days=7, total_budget_estimate='$1,500 - $2,000', daily_plans=[DayPlan(day_number=1, + date='2023-10-01', title='Arrival in Auckland', activities=[DayActivity(time='10:00 + AM', activity='Arrive at Auckland Airport', location='Auckland Airport', notes='Collect + rental car from the airport.'), DayActivity(time='12:00 PM', activity='Lunch + at Depot Eatery', location='Auckland', notes='Try local favorites like the + green-lipped mussels.'), DayActivity(time='2:00 PM', activity='Visit Auckland + War Memorial Museum', location='Domain Drive, Auckland', notes='Explore Maori + culture and New Zealand\u2019s natural history.'), DayActivity(time='4:00 + PM', activity='Stroll in Auckland Domain', location='Auckland', notes='Enjoy + the gardens and scenic views.'), DayActivity(time='6:00 PM', activity='Dinner + at The Glass Goose Bar \\u0026 Eatery', location='Auckland', notes='Outdoor + seating available.')], meals=['Lunch at Depot Eatery', 'Dinner at The Glass + Goose Bar \\u0026 Eatery'], accommodation='SkyCity Hotel, Auckland'), DayPlan(day_number=2, + date='2023-10-02', title='Exploring Rotorua', activities=[DayActivity(time='8:00 + AM', activity='Drive to Rotorua', location='Auckland to Rotorua (approx. 3 + hours)', notes='Enjoy scenic views along the way.'), DayActivity(time='11:00 + AM', activity='Visit Te Puia', location='Rotorua', notes='See geysers and + learn about Maori culture.'), DayActivity(time='1:00 PM', activity='Lunch + at Puku Puku Caf\xE9', location='Rotorua', notes='Sample local dishes.'), + DayActivity(time='3:00 PM', activity='Relax in the Polynesian Spa', location='Rotorua', + notes='Enjoy geothermal pools.'), DayActivity(time='6:00 PM', activity='Dinner + at Eat Streat', location='Rotorua', notes='Choose from various food stalls.')], + meals=['Lunch at Puku Puku Caf\xE9', 'Dinner at Eat Streat'], accommodation='Regent + of Rotorua'), DayPlan(day_number=3, date='2023-1\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"### + Nature \\u0026 Adventure in New Zealand: A Week of Wonders\\n\\n#### Destination: + New Zealand\\n- **Duration:** 7 Days\\n- **Budget:** Moderate ($1,500 - $2,000)\\n- + **Interests:** Nature, Adventure, Culture\\n\\n#### Weather Insights\\n- Current + conditions are overcast with a temperature of 7.6\xB0C.\\n- Expect mild temperatures + with some precipitation next week, ranging from 4\xB0C to 22\xB0C.\\n\\n#### + Trip Overview\\n\\n**Day 1: Arrival in Auckland**\\n- **10:00 AM:** Arrive + at Auckland Airport - Collect rental car.\\n- **12:00 PM:** Lunch at Depot + Eatery - Try local green-lipped mussels.\\n- **2:00 PM:** Visit Auckland War + Memorial Museum - Explore Maori culture.\\n- **4:00 PM:** Stroll in Auckland + Domain - Enjoy gardens and views.\\n- **6:00 PM:** Dinner at The Glass Goose + Bar \\u0026 Eatery.\\n- **Accommodation:** SkyCity Hotel, Auckland\\n\\n**Day + 2: Exploring Rotorua**\\n- **8:00 AM:** Drive to Rotorua (3 hours).\\n- **11:00 + AM:** Visit Te Puia - See geysers and Maori culture.\\n- **1:00 PM:** Lunch + at Puku Puku Caf\xE9 - Sample local dishes.\\n- **3:00 PM:** Relax in Polynesian + Spa - Enjoy geothermal pools.\\n- **6:00 PM:** Dinner at Eat Streat.\\n- **Accommodation:** + Regent of Rotorua\\n\\n**Day 3: Adventure in Taupo**\\n- **8:00 AM:** Drive + to Taupo (1 hour).\\n- **10:00 AM:** Visit Huka Falls.\\n- **12:00 PM:** Lunch + at The Boat Shed Caf\xE9.\\n- **2:00 PM:** Skydiving or Jet Boating - Book + in advance.\\n- **5:00 PM:** Relax at Taupo Lake Front.\\n- **Accommodation:** + Millennium Hotel Taupo\\n\\n**Day 4: Tongariro National Park**\\n- **7:00 + AM:** Drive to Tongariro (1 hour).\\n- **8:30 AM:** Begin Tongariro Alpine + Crossing - Full-day hike.\\n- **12:00 PM:** Lunch on the trail - Pack a picnic.\\n- + **4:00 PM:** Complete hike - Stunning views.\\n- **6:00 PM:** Dinner at a + local lodge.\\n- **Accommodation:** Chateau Tongariro Hotel\\n\\n**Day 5: + Wellington Culture Day**\\n- **8:00 AM:** Drive to Wellington (4 hours).\\n- + **12:00 PM:** Lunch at Fidel's Caf\xE9.\\n- **2:00 PM:** Visit Te Papa Tongarewa + Museum - Free entry.\\n- **4:00 PM:** Walk along Wellington Waterfront.\\n- + **6:00 PM:** Dinner at Ortega Fish Shack.\\n- **A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4339\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"846\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5185\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"IS6vpvXSyWc=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984005653000\",\"endTimeUnixNano\":\"1763041985613511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"936\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"959\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"brUFs0ciw1M=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041985613918000\",\"endTimeUnixNano\":\"1763041987102501000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Irx+5vAh2RA=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041987103912000\",\"endTimeUnixNano\":\"1763041990567857000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"801\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8D1wUHRUnJY=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568009000\",\"endTimeUnixNano\":\"1763041993540330000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Z0YMsVUAJiE=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568056000\",\"endTimeUnixNano\":\"1763041993540426000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"YOs61ryvpF4=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041993541968000\",\"endTimeUnixNano\":\"1763041995719255000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"876\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"84\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"960\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"4JCF5eBk2tQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719607000\",\"endTimeUnixNano\":\"1763041998146609000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ixR9+7Z/j1o=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719759000\",\"endTimeUnixNano\":\"1763041998146773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8mbS0moocyI=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041998148255000\",\"endTimeUnixNano\":\"1763041999477499000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2374\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"18\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2392\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ZXf5rcFUcLQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041999478441000\",\"endTimeUnixNano\":\"1763042000768653000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"1qbdTW8b/2E=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042000769229000\",\"endTimeUnixNano\":\"1763042004651429000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2545\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2687\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"NKOz3ltzNm0=\",\"parentSpanId\":\"r4Bxnys8Ajs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042005169975000\",\"endTimeUnixNano\":\"1763042043090298000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: nature, adventure, culture\\n- Weather: Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\n- Destination Info: New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It's known for varied topography and sharp mountain peaks, + including the Southern Alps. The capital city is Wellington, and its most + populous city is Auckland.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and nature, adventure, culture interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS3K2CF576d4YsisW6wGQEds7rmH\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2169\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1573\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"596\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Nature + \\u0026 Adventure in New Zealand: A Week of Wonders\\\",\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500 + - $2,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + rental car from the airport.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Depot Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Try + local favorites like the green-lipped mussels.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Domain + Drive, Auckland\\\",\\\"notes\\\":\\\"Explore Maori culture and New Zealand\u2019s + natural history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Stroll + in Auckland Domain\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Enjoy + the gardens and scenic views.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Outdoor + seating available.\\\"}],\\\"meals\\\":[\\\"Lunch at Depot Eatery\\\",\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + Rotorua\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Rotorua\\\",\\\"location\\\":\\\"Auckland to Rotorua (approx. 3 hours)\\\",\\\"notes\\\":\\\"Enjoy + scenic views along the way.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit + Te Puia\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"See geysers + and learn about Maori culture.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Puku Puku Caf\xE9\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Sample + local dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + in the Polynesian Spa\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Enjoy + geothermal pools.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Eat Streat\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Choose + from various food stalls.\\\"}],\\\"meals\\\":[\\\"Lunch at Puku Puku Caf\xE9\\\",\\\"Dinner + at Eat Streat\\\"],\\\"accommodation\\\":\\\"Regent of Rotorua\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Adventure + in Taupo\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Taupo\\\",\\\"location\\\":\\\"Rotorua to Taupo (approx. 1 hour)\\\",\\\"notes\\\":\\\"Stop + at Huk\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"056VGM+8Nok=\",\"parentSpanId\":\"brUFs0ciw1M=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041986115747000\",\"endTimeUnixNano\":\"1763041987094583000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"kvjaqj4KYrQ=\",\"parentSpanId\":\"8D1wUHRUnJY=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041991671179000\",\"endTimeUnixNano\":\"1763041992478589000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"u+rad2kmPnI=\",\"parentSpanId\":\"Z0YMsVUAJiE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041992480116000\",\"endTimeUnixNano\":\"1763041993538494000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ETHKBPTcA2s=\",\"parentSpanId\":\"4JCF5eBk2tQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041996225152000\",\"endTimeUnixNano\":\"1763041997195369000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"jQ6zmabmw2M=\",\"parentSpanId\":\"ixR9+7Z/j1o=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041997198300000\",\"endTimeUnixNano\":\"1763041998144145000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"0YqSiXc6Hig=\",\"parentSpanId\":\"ZXf5rcFUcLQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041999981250000\",\"endTimeUnixNano\":\"1763042000767913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '98254' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/eed63641fc3ffa3ea40a166e2604edd2 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"kDfoXagrNmk=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306563000\",\"endTimeUnixNano\":\"1763041981994302000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"5t6oCNV1x24=\",\"parentSpanId\":\"kDfoXagrNmk=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306752000\",\"endTimeUnixNano\":\"1763041981994217000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"CPDw9H+t3W0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041900556562000\",\"endTimeUnixNano\":\"1763041909681624000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are some great beach destinations for families in the Americas to consider:\\n\\n1. + **Barbados (Caribbean)**\\n - Language: English\\n - Currency: BBD\\n + \ - Known for its beautiful sandy beaches and vibrant culture.\\n\\n2. **Puerto + Rico (Caribbean)**\\n - Languages: English, Spanish\\n - Currency: USD\\n + \ - Offers lovely beaches, lush rainforests, and a rich cultural heritage.\\n\\n3. + **Turks and Caicos Islands (Caribbean)**\\n - Language: English\\n - Currency: + USD\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\n\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\n\\nI'll gather weather + information and details about Barbados and then create your itinerary.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"664\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"221\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"885\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"gjU8x51ljN8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909682975000\",\"endTimeUnixNano\":\"1763041912228857000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"saPJCTZOa8E=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909683354000\",\"endTimeUnixNano\":\"1763041912228748000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"v4pJsgk8eu8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041912233276000\",\"endTimeUnixNano\":\"1763041916478547000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1859\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"37\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1896\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vW7dC7113KM=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041916479365000\",\"endTimeUnixNano\":\"1763041923081358000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"S5LEq3ro4i0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041923083562000\",\"endTimeUnixNano\":\"1763041926952714000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2178\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"127\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2305\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"0revCekYick=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041926953355000\",\"endTimeUnixNano\":\"1763041968277636000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"awXbMZjA1IQ=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041968278645000\",\"endTimeUnixNano\":\"1763041981992200000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e284b4408193b787ece129274ff2\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Beach + Bliss in Barbados: A 7-Day Tropical Escape', destination='Barbados', duration_days=7, + total_budget_estimate='$1,500', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and Beach Day', activities=[DayActivity(time='12:00 PM', activity='Check-in + at hotel', location='Turtle Beach by Elegant Hotels', notes='Enjoy welcome + drinks and settle into your room.'), DayActivity(time='1:30 PM', activity='Lunch + at the hotel restaurant', location='Turtle Beach', notes='Try the grilled + fish with local spices.'), DayActivity(time='3:00 PM', activity='Relax at + Dover Beach', location='Dover Beach', notes='Beach chairs and umbrellas available + for rent.'), DayActivity(time='6:00 PM', activity='Sunset viewing', location='Dover + Beach', notes='Perfect spot for photos.'), DayActivity(time='7:30 PM', activity='Dinner + at The Oistins Fish Fry', location='Oistins', notes='A vibrant atmosphere + with fresh seafood.')], meals=['Lunch at Turtle Beach', 'Dinner at Oistins + Fish Fry'], accommodation='Turtle Beach by Elegant Hotels'), DayPlan(day_number=2, + date='2023-10-02', title='Explore Bridgetown', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at the hotel', location='Turtle Beach', notes='Buffet + style with local and international options.'), DayActivity(time='9:30 AM', + activity='Visit the Barbados Museum \\u0026 Historical Society', location='Bridgetown', + notes=\\\"Learn about the island's history.\\\"), DayActivity(time='12:00 + PM', activity='Lunch at Brown Sugar', location='Bridgetown', notes='Taste + local dishes in an outdoor setting.'), DayActivity(time='2:00 PM', activity='Explore + George Street and local shops', location='Bridgetown', notes='Pick up souvenirs + and local crafts.'), DayActivity(time='4:00 PM', activity='Relax at Pebbles + Beach', location='Pebbles Beach', notes='Enjoy swimming and sunbathing.'), + DayActivity(time='6:00 PM', activity='Dinner at The Cliff', location='St. + James', notes='Reservations recommend\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for your family vacation in Barbados, focusing + on beach activities and cultural experiences:\\n\\n### Trip Title: Beach Bliss + in Barbados: A 7-Day Tropical Escape\\n\\n#### **Day 1: Arrival and Beach + Day**\\n- **12:00 PM:** Check-in at Turtle Beach by Elegant Hotels. Enjoy + welcome drinks and settle in.\\n- **1:30 PM:** Lunch at the hotel restaurant. + Try the grilled fish with local spices.\\n- **3:00 PM:** Relax at Dover Beach. + Beach chairs and umbrellas available.\\n- **6:00 PM:** Enjoy a sunset viewing + at Dover Beach\u2014perfect for photos.\\n- **7:30 PM:** Dinner at The Oistins + Fish Fry. Vibrant atmosphere with fresh seafood.\\n\\n#### **Day 2: Explore + Bridgetown**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** + Visit the Barbados Museum \\u0026 Historical Society. Learn about the island's + history.\\n- **12:00 PM:** Lunch at Brown Sugar. Taste local dishes.\\n- **2:00 + PM:** Explore George Street and local shops for souvenirs.\\n- **4:00 PM:** + Relax at Pebbles Beach. Enjoy swimming and sunbathing.\\n- **6:00 PM:** Dinner + at The Cliff. Stunning ocean views, reservations recommended.\\n\\n#### **Day + 3: Catamaran Adventure**\\n- **7:30 AM:** Breakfast at Turtle Beach.\\n- **9:00 + AM:** Catamaran cruise from Bridgetown. Swim with turtles and snorkel at coral + reefs.\\n- **12:30 PM:** Lunch on board the catamaran.\\n- **3:00 PM:** Return + to the hotel, relax at the beach or pool.\\n- **7:00 PM:** Dinner at The Round + House in Bathsheba. Try local fish dishes.\\n\\n#### **Day 4: Beach Hopping**\\n- + **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** Visit Crane Beach. + Famous for its pink sand.\\n- **12:00 PM:** Lunch at The Crane Beach Resort.\\n- + **2:00 PM:** Head to Bottom Bay Beach. Less crowded and perfect for relaxation.\\n- + **5:00 PM:** Return to hotel.\\n- **7:30 PM:** Dinner at Naru Restaurant and + Lounge. Local and Asian fusion cuisine.\\n\\n#### **Day 5: Island Culture + and Relaxation**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **10:00 AM:** + Visit St. Nicholas Abbey. Tour the plantation and rum distillery.\\n- **1:00 + PM:** Lunch at the A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4121\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"842\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4963\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vSd7s42xrTw=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894311147000\",\"endTimeUnixNano\":\"1763041898739189000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"932\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"22\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"954\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"dkkP9YWRUaI=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041898739699000\",\"endTimeUnixNano\":\"1763041900553722000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"jB510DMs6/8=\",\"parentSpanId\":\"saPJCTZOa8E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910186602000\",\"endTimeUnixNano\":\"1763041910919083000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"I4smyApmv2I=\",\"parentSpanId\":\"gjU8x51ljN8=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910919911000\",\"endTimeUnixNano\":\"1763041912227844000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wsif3cTB5R0=\",\"parentSpanId\":\"vW7dC7113KM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041916984585000\",\"endTimeUnixNano\":\"1763041923078888000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"T263X02AHSc=\",\"parentSpanId\":\"dkkP9YWRUaI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041899242488000\",\"endTimeUnixNano\":\"1763041900545636000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wJnvML6OlKo=\",\"parentSpanId\":\"0revCekYick=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041927471141000\",\"endTimeUnixNano\":\"1763041968276800000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: beaches\\n- Weather: Current temperature 27.4\xB0C, mainly clear + conditions. Forecast: mostly warm weather with some rain expected later in + the week.\\n- Destination Info: Barbados is an island country in the Caribbean + located in the Atlantic Ocean. It is part of the Lesser Antilles of the West + Indies and the easternmost island of the Caribbean region. It lies on the + boundary of the South American and Caribbean plates. Its capital and largest + city is Bridgetown.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and beaches interests.\\nEach day should have 3-5 + activities with specific times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS25L4VnHyasIegXuwEirm30SBWf\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2288\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1717\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"571\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Beach + Bliss in Barbados: A 7-Day Tropical Escape\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Beach Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at hotel\\\",\\\"location\\\":\\\"Turtle Beach by Elegant Hotels\\\",\\\"notes\\\":\\\"Enjoy + welcome drinks and settle into your room.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Try + the grilled fish with local spices.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at Dover Beach\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Beach + chairs and umbrellas available for rent.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Sunset + viewing\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Perfect + spot for photos.\\\"},{\\\"time\\\":\\\"7:30 PM\\\",\\\"activity\\\":\\\"Dinner + at The Oistins Fish Fry\\\",\\\"location\\\":\\\"Oistins\\\",\\\"notes\\\":\\\"A + vibrant atmosphere with fresh seafood.\\\"}],\\\"meals\\\":[\\\"Lunch at Turtle + Beach\\\",\\\"Dinner at Oistins Fish Fry\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Explore + Bridgetown\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Buffet + style with local and international options.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + the Barbados Museum \\u0026 Historical Society\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Learn + about the island's history.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Brown Sugar\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Taste + local dishes in an outdoor setting.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + George Street and local shops\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Pick + up souvenirs and local crafts.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Relax + at Pebbles Beach\\\",\\\"location\\\":\\\"Pebbles Beach\\\",\\\"notes\\\":\\\"Enjoy + swimming and sunbathing.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Cliff\\\",\\\"location\\\":\\\"St. James\\\",\\\"notes\\\":\\\"Reservations + recommended for stunning ocean views.\\\"}],\\\"meals\\\":[\\\"Breakfast at + Turtle Beach\\\",\\\"Lunch at Brown Sugar\\\",\\\"Dinner at The Cliff\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '79035' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_basic.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_basic.yaml new file mode 100644 index 0000000..f89cd2d --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_basic.yaml @@ -0,0 +1,5248 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B%7D&limit=10 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}},{"traceID":"b37b4c7727a54482f8c71cb88799c108","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042214208334000","durationMs":74124,"spanSet":{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18},"spanSets":[{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18}],"serviceStats":{"travel-agent-demo2":{"spanCount":18}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"67921","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Vary: + - Accept-Encoding + content-length: + - '6560' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/bec9c8df1c3a22a134e4c9c7aa0f0ce3 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"htO31/xjQN0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458122243000\",\"endTimeUnixNano\":\"1763042536895402000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"0hFkYEm0pAA=\",\"parentSpanId\":\"htO31/xjQN0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458123662000\",\"endTimeUnixNano\":\"1763042536895316000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"FSS1aMtuo4g=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042521888311000\",\"endTimeUnixNano\":\"1763042536893685000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4ab7f848195ada04713bd68e3dc\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Exploring + the Wonders of New Zealand', destination='New Zealand', duration_days=7, total_budget_estimate='$1,500', + daily_plans=[DayPlan(day_number=1, date='2023-10-01', title='Arrival in Auckland', + activities=[DayActivity(time='09:00 AM', activity='Arrive at Auckland Airport', + location='Auckland Airport', notes='Collect your rental car for the week.'), + DayActivity(time='10:00 AM', activity='Check into Accommodation', location='SkyCity + Hotel', notes='Located in the city center, convenient for exploring.'), DayActivity(time='11:30 + AM', activity='Visit Auckland War Memorial Museum', location='Auckland Domain', + notes='Explore New Zealand\u2019s cultural heritage and natural history.'), + DayActivity(time='02:00 PM', activity='Lunch at Tom Tom Bar \\u0026 Eatery', + location='SkyCity', notes='Enjoy a relaxing meal with views of the city.'), + DayActivity(time='03:30 PM', activity='Walk around Viaduct Harbour', location='Viaduct + Harbour', notes='Stroll along the waterfront and enjoy the vibrant atmosphere.'), + DayActivity(time='06:30 PM', activity='Dinner at Depot Eatery', location='Federal + Street, Auckland', notes='Experience local New Zealand cuisine.')], meals=['Lunch + at Tom Tom Bar \\u0026 Eatery', 'Dinner at Depot Eatery'], accommodation='SkyCity + Hotel, Auckland'), DayPlan(day_number=2, date='2023-10-02', title='Exploring + the Bay of Islands', activities=[DayActivity(time='07:00 AM', activity='Drive + to Bay of Islands', location='Bay of Islands', notes='Approx. 3 hours drive, + enjoy scenic views on the way.'), DayActivity(time='10:30 AM', activity='Take + a Bay of Islands Cruise', location='Paihia Wharf', notes='Explore the stunning + islands and spot marine wildlife.'), DayActivity(time='01:00 PM', activity='Lunch + at The Gables Restaurant', location='Russell', notes='Try fresh seafood and + local dishes.'), DayActivity(time='03:00 PM', activity='Visit Waitangi Treaty + Grounds', location='Waitangi', notes=\\\"Learn about New Zealand's history + an\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for a romantic cultural vacation in New Zealand, + tailored to your interests:\\n\\n### Exploring the Wonders of New Zealand\\n\\n#### + **Day 1: Arrival in Auckland**\\n- **Morning**\\n - Arrive at Auckland Airport\\n + \ - Check into SkyCity Hotel, centrally located for easy exploration.\\n- + **Afternoon**\\n - Visit Auckland War Memorial Museum: Delve into New Zealand\u2019s + cultural heritage.\\n - Lunch at Tom Tom Bar \\u0026 Eatery: Enjoy city views.\\n- + **Evening**\\n - Walk around Viaduct Harbour: Vibrant waterfront stroll.\\n + \ - Dinner at Depot Eatery: Experience local cuisine.\\n\\n#### **Day 2: Exploring + the Bay of Islands**\\n- **Morning**\\n - Drive to Bay of Islands: Scenic + 3-hour journey.\\n - Take a Bay of Islands Cruise: Explore islands and marine + wildlife.\\n- **Afternoon**\\n - Lunch at The Gables Restaurant: Fresh local + seafood.\\n - Visit Waitangi Treaty Grounds: Learn about New Zealand's history.\\n- + **Evening**\\n - Return to Auckland.\\n - Dinner at The Glasshouse.\\n\\n#### + **Day 3: Wellington - The Capital**\\n- **Morning**\\n - Drive to Wellington: + Enjoy the scenic route.\\n- **Afternoon**\\n - Lunch at The Boatshed Cafe.\\n + \ - Visit Te Papa Tongarewa (Museum of New Zealand): Explore national history.\\n- + **Evening**\\n - Cable Car Ride to Kelburn: City views.\\n - Dinner at Logan + Brown: Fine dining.\\n\\n#### **Day 4: Nature and Culture in Wellington**\\n- + **Morning**\\n - Wellington Botanic Garden: Peaceful morning walk.\\n - + Explore Zealandia Ecosanctuary: Discover unique wildlife.\\n- **Afternoon**\\n + \ - Lunch at The Ramen Shop.\\n - Visit the National Portrait Gallery.\\n- + **Evening**\\n - Dinner at The Old Bailey.\\n\\n#### **Day 5: Travel to Queenstown**\\n- + **Early Morning**\\n - Fly from Wellington to Queenstown.\\n- **Morning**\\n + \ - Check into Center City Apartments.\\n - Skyline Gondola Ride: Panoramic + views.\\n- **Afternoon**\\n - Lunch at Stratosfare Restaurant: Mountain views.\\n + \ - Explore Queenstown Gardens.\\n- **Evening**\\n - Jet Boating on Lake + Wakatipu.\\n - Dinner at Fergburger.\\n\\n#### **Day 6: Adventure in Queenstown**\\n- + **Morning**\\n - \"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4669\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"694\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5363\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]}]},{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"SZQWdqnT86M=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458125576000\",\"endTimeUnixNano\":\"1763042460061974000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"933\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"956\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"LhJKSMoSSOA=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042460062781000\",\"endTimeUnixNano\":\"1763042461638134000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"j4A8EPQuGCg=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042461639066000\",\"endTimeUnixNano\":\"1763042463839211000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"800\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"850\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ULgV+UrP/qI=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463839867000\",\"endTimeUnixNano\":\"1763042466936364000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"rU40hFuwoTM=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463840073000\",\"endTimeUnixNano\":\"1763042466936520000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"t17Kam4h9+E=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466938646000\",\"endTimeUnixNano\":\"1763042470405151000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.completion.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.3.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"437\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"116\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"553\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"7g4u8KYJLAU=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406246000\",\"endTimeUnixNano\":\"1763042474022207000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"yCwOkiG7rZ4=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406582000\",\"endTimeUnixNano\":\"1763042474022257000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"suvbAlwFQxE=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406864000\",\"endTimeUnixNano\":\"1763042474022284000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"kK2HJo7iF1s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470407130000\",\"endTimeUnixNano\":\"1763042474022309000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"hqoFE9rpZHw=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042474023255000\",\"endTimeUnixNano\":\"1763042479037529000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2709\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"3q+1aP5st6s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042479037941000\",\"endTimeUnixNano\":\"1763042521886451000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xp8+s75qaoQ=\",\"parentSpanId\":\"LhJKSMoSSOA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042460566475000\",\"endTimeUnixNano\":\"1763042461631027000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xTNGMbJ8o4w=\",\"parentSpanId\":\"ULgV+UrP/qI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042464944178000\",\"endTimeUnixNano\":\"1763042466058265000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"cp8E6e04/1g=\",\"parentSpanId\":\"rU40hFuwoTM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466061655000\",\"endTimeUnixNano\":\"1763042466934165000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"vHsnrxC0dGw=\",\"parentSpanId\":\"7g4u8KYJLAU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042470916507000\",\"endTimeUnixNano\":\"1763042471857859000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"wieBZmgqMfE=\",\"parentSpanId\":\"yCwOkiG7rZ4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042471863066000\",\"endTimeUnixNano\":\"1763042472795187000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"KvPdWQGWzrM=\",\"parentSpanId\":\"suvbAlwFQxE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042472796856000\",\"endTimeUnixNano\":\"1763042473492982000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"YDcPBs0N6BQ=\",\"parentSpanId\":\"kK2HJo7iF1s=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042473499558000\",\"endTimeUnixNano\":\"1763042474021224000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Australia\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ZxRbtS6dkJI=\",\"parentSpanId\":\"3q+1aP5st6s=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042479555737000\",\"endTimeUnixNano\":\"1763042521884511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: culture, nature\\n- Weather: Current temperature is 7.5\xB0C and + overcast. Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected + on certain days.\\n- Destination Info: New Zealand is an island country in + the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the moderate budget level and culture, + nature interests.\\nEach day should have 3-5 activities with specific times, + locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbSAyeprdNroIr4yr884B5SquCIU0\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2320\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1726\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"594\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Exploring + the Wonders of New Zealand\\\",\\\"destination\\\":\\\"New Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + your rental car for the week.\\\"},{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into Accommodation\\\",\\\"location\\\":\\\"SkyCity Hotel\\\",\\\"notes\\\":\\\"Located + in the city center, convenient for exploring.\\\"},{\\\"time\\\":\\\"11:30 + AM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Auckland + Domain\\\",\\\"notes\\\":\\\"Explore New Zealand\u2019s cultural heritage + and natural history.\\\"},{\\\"time\\\":\\\"02:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"SkyCity\\\",\\\"notes\\\":\\\"Enjoy + a relaxing meal with views of the city.\\\"},{\\\"time\\\":\\\"03:30 PM\\\",\\\"activity\\\":\\\"Walk + around Viaduct Harbour\\\",\\\"location\\\":\\\"Viaduct Harbour\\\",\\\"notes\\\":\\\"Stroll + along the waterfront and enjoy the vibrant atmosphere.\\\"},{\\\"time\\\":\\\"06:30 + PM\\\",\\\"activity\\\":\\\"Dinner at Depot Eatery\\\",\\\"location\\\":\\\"Federal + Street, Auckland\\\",\\\"notes\\\":\\\"Experience local New Zealand cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"Dinner at Depot Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + the Bay of Islands\\\",\\\"activities\\\":[{\\\"time\\\":\\\"07:00 AM\\\",\\\"activity\\\":\\\"Drive + to Bay of Islands\\\",\\\"location\\\":\\\"Bay of Islands\\\",\\\"notes\\\":\\\"Approx. + 3 hours drive, enjoy scenic views on the way.\\\"},{\\\"time\\\":\\\"10:30 + AM\\\",\\\"activity\\\":\\\"Take a Bay of Islands Cruise\\\",\\\"location\\\":\\\"Paihia + Wharf\\\",\\\"notes\\\":\\\"Explore the stunning islands and spot marine wildlife.\\\"},{\\\"time\\\":\\\"01:00 + PM\\\",\\\"activity\\\":\\\"Lunch at The Gables Restaurant\\\",\\\"location\\\":\\\"Russell\\\",\\\"notes\\\":\\\"Try + fresh seafood and local dishes.\\\"},{\\\"time\\\":\\\"03:00 PM\\\",\\\"activity\\\":\\\"Visit + Waitangi Treaty Grounds\\\",\\\"location\\\":\\\"Waitangi\\\",\\\"notes\\\":\\\"Learn + about New Zealand's history and culture.\\\"},{\\\"time\\\":\\\"05:30 PM\\\",\\\"activity\\\":\\\"Return + to Auckland\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Relax + in the car or stop for coffee on the way.\\\"},{\\\"time\\\":\\\"07:3\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '89149' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/6ce0a0129015a826c7f54b78275cfe37 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"QM3dFI3l52g=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290335056000\",\"endTimeUnixNano\":\"1763042456116415000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"3iOop76o3Sw=\",\"parentSpanId\":\"QM3dFI3l52g=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290336958000\",\"endTimeUnixNano\":\"1763042456116320000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"BGNWa2Lx+H4=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290337931000\",\"endTimeUnixNano\":\"1763042291996182000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"58\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"523\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bpkI8o2juJI=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042291997852000\",\"endTimeUnixNano\":\"1763042294883864000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"FWUQD7dWK24=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042291998533000\",\"endTimeUnixNano\":\"1763042294884045000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"JxMUY8xtBSU=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042294885529000\",\"endTimeUnixNano\":\"1763042317534957000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"For + an adventurous trip, I've selected two destinations known for thrilling experiences: + **Chile** in South America and **Tajikistan** in Central Asia. Let's explore + these destinations further to plan your exciting itinerary.\\n\\n### Chile\\n- + **Capital**: Santiago\\n- **Language**: Spanish\\n- **Currency**: Chilean + Peso (CLP)\\n- **Time Zone**: UTC-06:00 to UTC-04:00\\n\\n### Tajikistan\\n- + **Capital**: Dushanbe\\n- **Language**: Tajik, Russian\\n- **Currency**: Tajikistani + Somoni (TJS)\\n- **Time Zone**: UTC+05:00\\n\\nI'll gather the weather information + and then craft a detailed itinerary for you.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"945\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"213\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1158\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"OnwfJc+G7eA=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042317535695000\",\"endTimeUnixNano\":\"1763042321467468000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"zVBafqJLSVU=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042317535898000\",\"endTimeUnixNano\":\"1763042321467528000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"t+rxwgGXbbg=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042321470042000\",\"endTimeUnixNano\":\"1763042324279616000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1194\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"92\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1286\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"cOiJesC5V+c=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042324280282000\",\"endTimeUnixNano\":\"1763042326821781000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"VHh495GUkl0=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042324280617000\",\"endTimeUnixNano\":\"1763042326822084000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"QcXOYcnb1as=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042326824312000\",\"endTimeUnixNano\":\"1763042328899504000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1518\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"58\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1576\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"q9X9jhj0kbo=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042328900052000\",\"endTimeUnixNano\":\"1763042332069522000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bKmi3eZoF9E=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042328900188000\",\"endTimeUnixNano\":\"1763042332069569000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"pQWL2XkRjNE=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042332070368000\",\"endTimeUnixNano\":\"1763042337546943000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418af3c8190b5314c9f212bff34\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418cdf8819087ab8a397842e1ba\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Santiago, Chile' info=DestinationInfo(title='Santiago', + summary='Capital and largest city of Chile', extract=\\\"Santiago, also known + as Santiago de Chile, is the capital and largest city of Chile and one of + the largest cities in the Americas. Located in the Chilean Central Valley, + it anchors its namesake Santiago Metropolitan Region representing 40% of Chile's + total population. Most of the city is situated between 500\u2013650\\\\xa0m + (1,640\u20132,133\\\\xa0ft) above sea level.\\\")\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.17.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Dushanbe, Tajikistan' info=DestinationInfo(title='Dushanbe', + summary='Capital and largest city of Tajikistan', extract='Dushanbe is the + capital and largest city of Tajikistan. As of February\\\\xa02023, Dushanbe + had a population of 1,228,400, with this population being largely Tajik. Until + 1929, the city was known in Russian as Dyushambe, and from 1929 to 1961 as + Stalinabad, after Joseph Stalin. Dushanbe is located in the Gissar Valley, + bounded by the Gissar Range in the north and east and the Babatag, Aktau, + Rangontau and Karatau mountains in the south, and has an elevation of 750\u2013930 + m. The city is divided into four districts: Ismail Samani, Avicenna, Ferdowsi, + and Shah Mansur.')\"}},{\"key\":\"gen_ai.prompt.17.tool_call_id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Santiago, + Chile\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 24\xB0C with partly cloudy conditions. Upcoming days will be + mostly clear with temperatures ranging from 26\xB0C to 34\xB0C.\\\",\\\"destination_details\\\":\\\"Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_VD4AdDcXmJyed5FWcjWG7Ikt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\\",\\\"destination_details\\\":\\\"Dushanbe + is the capital and largest city of Tajikistan. It is located in the Gissar + Valley, bounded by mountainous terrains, and has a population of over 1 million + people.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_lid7TRD6rOxaEhIq6ISjqGG2\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1702\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"288\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1990\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"/iqJRoiO3Hs=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042337548317000\",\"endTimeUnixNano\":\"1763042433336198000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"dQSecaXxjXM=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042337548704000\",\"endTimeUnixNano\":\"1763042433336329000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"Gic8k6ZyUjM=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042433338440000\",\"endTimeUnixNano\":\"1763042456109947000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418af3c8190b5314c9f212bff34\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418cdf8819087ab8a397842e1ba\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Santiago, Chile' info=DestinationInfo(title='Santiago', + summary='Capital and largest city of Chile', extract=\\\"Santiago, also known + as Santiago de Chile, is the capital and largest city of Chile and one of + the largest cities in the Americas. Located in the Chilean Central Valley, + it anchors its namesake Santiago Metropolitan Region representing 40% of Chile's + total population. Most of the city is situated between 500\u2013650\\\\xa0m + (1,640\u20132,133\\\\xa0ft) above sea level.\\\")\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.17.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Dushanbe, Tajikistan' info=DestinationInfo(title='Dushanbe', + summary='Capital and largest city of Tajikistan', extract='Dushanbe is the + capital and largest city of Tajikistan. As of February\\\\xa02023, Dushanbe + had a population of 1,228,400, with this population being largely Tajik. Until + 1929, the city was known in Russian as Dyushambe, and from 1929 to 1961 as + Stalinabad, after Joseph Stalin. Dushanbe is located in the Gissar Valley, + bounded by the Gissar Range in the north and east and the Babatag, Aktau, + Rangontau and Karatau mountains in the south, and has an elevation of 750\u2013930 + m. The city is divided into four districts: Ismail Samani, Avicenna, Ferdowsi, + and Shah Mansur.')\"}},{\"key\":\"gen_ai.prompt.17.tool_call_id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e41d98b08190a0e7d230b49ad8ac\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Santiago, + Chile\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 24\xB0C with partly cloudy conditions. Upcoming days will be + mostly clear with temperatures ranging from 26\xB0C to 34\xB0C.\\\",\\\"destination_details\\\":\\\"Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e41fb6448190bca146180572c7a7\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\\",\\\"destination_details\\\":\\\"Dushanbe + is the capital and largest city of Tajikistan. It is located in the Gissar + Valley, bounded by mountainous terrains, and has a population of over 1 million + people.\\\"}\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Santiago, Chile' itinerary=TravelItinerary(trip_title='Adventurous + Santiago: A 7-Day Exploration', destination='Santiago, Chile', duration_days=7, + total_budget_estimate='$800-$1000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Santiago', activities=[DayActivity(time='10:00 AM', activity='Arrive + at Santiago International Airport', location='Santiago International Airport', + notes='Pick up rental car or take a taxi to the accommodation.'), DayActivity(time='11:30 + AM', activity='Check-in to accommodation', location='Hotel Plaza El Bosque', + notes='Moderate budget, centrally located.'), DayActivity(time='1:00 PM', + activity='Lunch at Liguria', location='Liguria Restaurant', notes='Try the + local seafood dishes.'), DayActivity(time='3:00 PM', activity='Walk around + Plaza de Armas', location='Plaza de Armas', notes='Explore the historic heart + of Santiago.'), DayActivity(time='5:00 PM', activity='Visit Cerro Santa Lucia', + location='Cerro Santa Lucia', notes='Enjoy panoramic views of the city.')], + meals=['Lunch at Liguria', 'Dinner at La Piojera'], accommodation='Hotel Plaza + El Bosque'), DayPlan(day_number=2, date='2023-10-02', title='Cajon del Maipo + Adventure', activities=[DayActivity(time='8:00 AM', activity='Breakfast at + the hotel', location='Hotel Plaza El Bosque', notes='Enjoy a hearty breakfast.'), + DayActivity(time='9:00 AM', activity='Depart for Cajon del Maipo', location='Cajon + del Maipo', notes='A beautiful area for outdoor activities.'), DayActivity(time='10:30 + AM', activity='Hiking in the El Morado National Monument', location='El Morado', + notes='Moderate hike with stunning views.'), DayActivity(time='1:00 PM', activity='Picnic + lunch in nature', location='El Morado', notes='Pack a lunch to enjoy in the + outdoors.'), DayActivity(time='3:00 PM', activity='Visit Embalse El Yeso', + location='Embalse El Yeso', notes='Take photos and enjoy the scenery.'), DayActivity(time='5:00 + PM', activity='Return to Santiago', location='Santiago', notes='R\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_VD4AdDcXmJyed5FWcjWG7Ikt\"}},{\"key\":\"gen_ai.prompt.21.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.21.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Dushanbe, Tajikistan' itinerary=TravelItinerary(trip_title='Adventure + Awaits in Dushanbe', destination='Dushanbe, Tajikistan', duration_days=7, + total_budget_estimate='$700', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and City Exploration', activities=[DayActivity(time='09:00 + AM', activity='Arrive in Dushanbe', location='Dushanbe International Airport', + notes='Transfer to hotel via taxi or arranged pickup.'), DayActivity(time='10:30 + AM', activity='Check-in and freshen up', location='Hotel Atlas Dushanbe', + notes='Moderate hotel with good reviews.'), DayActivity(time='12:00 PM', activity='Lunch + at Restaurant Shodlik', location='Shodlik Restaurant', notes='Try local dishes + like Plov and Shashlik.'), DayActivity(time='01:30 PM', activity='Visit the + National Museum of Tajikistan', location='Dushanbe', notes='Explore Tajik + history and culture.'), DayActivity(time='03:30 PM', activity='Walk around + Rudaki Park', location='Rudaki Park', notes='Enjoy the greenery and relax.'), + DayActivity(time='06:00 PM', activity='Dinner at Restaurant Dushanbe', location='Restaurant + Dushanbe', notes='Known for traditional Tajik cuisine.')], meals=['Lunch at + Shodlik', 'Dinner at Restaurant Dushanbe'], accommodation='Hotel Atlas Dushanbe'), + DayPlan(day_number=2, date='2023-10-02', title='Adventure in the Mountains', + activities=[DayActivity(time='08:00 AM', activity='Breakfast at the hotel', + location='Hotel Atlas Dushanbe', notes='Start your day with a hearty breakfast.'), + DayActivity(time='09:00 AM', activity='Day trip to Fann Mountains', location='Fann + Mountains', notes='Hire a local guide for an adventure hike.'), DayActivity(time='12:30 + PM', activity='Picnic lunch at Alaudin Lakes', location='Alaudin Lakes', notes='Pack + lunch from the hotel.'), DayActivity(time='02:00 PM', activity='Hiking around + the lakes', location='Alaudin Lakes', notes='Enjoy stunning views and take + photos.'), DayActivity(time='05:00 PM', activity='Return to Dushanbe', location='Dushanbe',\"}},{\"key\":\"gen_ai.prompt.21.tool_call_id\",\"value\":{\"stringValue\":\"call_lid7TRD6rOxaEhIq6ISjqGG2\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are two thrilling itineraries tailor-made for your adventurous spirit. You + can choose between Santiago, Chile, known for its vibrant city life and stunning + natural landscapes, or Dushanbe, Tajikistan, offering untouched natural beauty + and rich cultural experiences.\\n\\n### Santiago, Chile: Adventurous Exploration + (7 Days)\\n**Highlights:**\\n- Explore vibrant city life in Santiago, including + cultural sites like Plaza de Armas and Cerro Santa Lucia.\\n- Experience the + thrill of hiking in Cajon del Maipo and El Morado National Monument.\\n- Enjoy + a day trip to colorful Valparaiso.\\n- Taste Chilean wines on a Maipo Valley + wine tour.\\n- Adventure in the Andes Mountains with skiing or hiking.\\n\\n**Estimated + Budget:** $800-$1000\\n\\n**Travel Tips:** Learn some basic Spanish phrases, + and always carry water for outdoor activities.\\n\\n**Packing Suggestions:** + Lightweight clothing, comfortable hiking shoes, and sun protection.\\n\\n### + Dushanbe, Tajikistan: Adventure in Nature (7 Days)\\n**Highlights:**\\n- Discover + Dushanbe's cultural sites, including the National Museum and Rudaki Park.\\n- + Embark on an adventurous day in the Fann Mountains with hiking and exploring + the Alaudin Lakes.\\n- Enjoy rafting and hiking in Varzob Valley.\\n- Trek + in the majestic Pamir Mountains to Lake Sarez.\\n\\n**Estimated Budget:** + $700\\n\\n**Travel Tips:** Learn basic Tajik phrases, carry cash, and respect + local traditions.\\n\\n**Packing Suggestions:** Lightweight, layered clothing, + comfortable hiking shoes, and sunscreen.\\n\\nBoth itineraries promise adventure + and memorable experiences. Let me know if you have any preferences or need + further assistance!\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"7540\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"333\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7873\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"flp6zhR87z8=\",\"parentSpanId\":\"bpkI8o2juJI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042292502514000\",\"endTimeUnixNano\":\"1763042293711707000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Asia\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"8pVEfcKzjl0=\",\"parentSpanId\":\"FWUQD7dWK24=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042293718002000\",\"endTimeUnixNano\":\"1763042294872800000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"r7fWWieyOBU=\",\"parentSpanId\":\"OnwfJc+G7eA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042318640277000\",\"endTimeUnixNano\":\"1763042320464533000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Santiago%2C+Chile\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"HtDo/cYr/Zg=\",\"parentSpanId\":\"zVBafqJLSVU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042320470625000\",\"endTimeUnixNano\":\"1763042321464327000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Dushanbe%2C+Tajikistan\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"Vk5JbW85DaI=\",\"parentSpanId\":\"cOiJesC5V+c=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042324782420000\",\"endTimeUnixNano\":\"1763042325888098000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-33.4377756\\u0026longitude=-70.6504502\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bvgm7G6N5UQ=\",\"parentSpanId\":\"VHh495GUkl0=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042325892104000\",\"endTimeUnixNano\":\"1763042326819385000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=38.5856814\\u0026longitude=68.760331\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"k4ESLnjIntM=\",\"parentSpanId\":\"q9X9jhj0kbo=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042329402505000\",\"endTimeUnixNano\":\"1763042329932028000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Santiago,%20Chile\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"OPn/NLRb7OU=\",\"parentSpanId\":\"bKmi3eZoF9E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042329932776000\",\"endTimeUnixNano\":\"1763042332067863000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Dushanbe,%20Tajikistan\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"7BjV1KWqCGg=\",\"parentSpanId\":\"/iqJRoiO3Hs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042338068561000\",\"endTimeUnixNano\":\"1763042378358074000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Santiago, + Chile.\\n\\nTrip Details:\\n- Destination: Santiago, Chile\\n- Duration: 7 + days\\n- Budget: moderate\\n- Interests: adventure\\n- Weather: Current temperature + is 24\xB0C with partly cloudy conditions. Upcoming days will be mostly clear + with temperatures ranging from 26\xB0C to 34\xB0C.\\n- Destination Info: Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and adventure interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS8gIwmKuNXg8IbIbSADLWloOWdb\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2336\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1737\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"599\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Adventurous + Santiago: A 7-Day Exploration\\\",\\\"destination\\\":\\\"Santiago, Chile\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$800-$1000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Santiago\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Santiago International Airport\\\",\\\"location\\\":\\\"Santiago International + Airport\\\",\\\"notes\\\":\\\"Pick up rental car or take a taxi to the accommodation.\\\"},{\\\"time\\\":\\\"11:30 + AM\\\",\\\"activity\\\":\\\"Check-in to accommodation\\\",\\\"location\\\":\\\"Hotel + Plaza El Bosque\\\",\\\"notes\\\":\\\"Moderate budget, centrally located.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Liguria\\\",\\\"location\\\":\\\"Liguria + Restaurant\\\",\\\"notes\\\":\\\"Try the local seafood dishes.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Walk around Plaza de Armas\\\",\\\"location\\\":\\\"Plaza + de Armas\\\",\\\"notes\\\":\\\"Explore the historic heart of Santiago.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Visit Cerro Santa Lucia\\\",\\\"location\\\":\\\"Cerro + Santa Lucia\\\",\\\"notes\\\":\\\"Enjoy panoramic views of the city.\\\"}],\\\"meals\\\":[\\\"Lunch + at Liguria\\\",\\\"Dinner at La Piojera\\\"],\\\"accommodation\\\":\\\"Hotel + Plaza El Bosque\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Cajon + del Maipo Adventure\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Hotel Plaza El Bosque\\\",\\\"notes\\\":\\\"Enjoy + a hearty breakfast.\\\"},{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Depart + for Cajon del Maipo\\\",\\\"location\\\":\\\"Cajon del Maipo\\\",\\\"notes\\\":\\\"A + beautiful area for outdoor activities.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Hiking + in the El Morado National Monument\\\",\\\"location\\\":\\\"El Morado\\\",\\\"notes\\\":\\\"Moderate + hike with stunning views.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Picnic + lunch in nature\\\",\\\"location\\\":\\\"El Morado\\\",\\\"notes\\\":\\\"Pack + a lunch to enjoy in the outdoors.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + Embalse El Yeso\\\",\\\"location\\\":\\\"Embalse El Yeso\\\",\\\"notes\\\":\\\"Take + photos and enjoy the scenery.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to Santiago\\\",\\\"location\\\":\\\"Santiago\\\",\\\"notes\\\":\\\"Relax + after a day of adventure.\\\"}],\\\"meals\\\":[\\\"Breakfast at the hotel\\\",\\\"Picnic + lunch\\\",\\\"Dinner at Los Buenos Muchachos\\\"],\\\"accommodation\\\":\\\"Hotel + Plaza El Bosque\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"cioloVIWits=\",\"parentSpanId\":\"dQSecaXxjXM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042378370827000\",\"endTimeUnixNano\":\"1763042433334128000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Dushanbe, + Tajikistan.\\n\\nTrip Details:\\n- Destination: Dushanbe, Tajikistan\\n- Duration: + 7 days\\n- Budget: moderate\\n- Interests: adventure\\n- Weather: Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\n- + Destination Info: Dushanbe is the capital and largest city of Tajikistan. + It is located in the Gissar Valley, bounded by mountainous terrains, and has + a population of over 1 million people.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and adventure interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS9Lz3AjDms2dEht5anB36agIYPs\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2499\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1923\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"576\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Adventure + Awaits in Dushanbe\\\",\\\"destination\\\":\\\"Dushanbe, Tajikistan\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$700\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and City Exploration\\\",\\\"activities\\\":[{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Dushanbe\\\",\\\"location\\\":\\\"Dushanbe International Airport\\\",\\\"notes\\\":\\\"Transfer + to hotel via taxi or arranged pickup.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Check-in + and freshen up\\\",\\\"location\\\":\\\"Hotel Atlas Dushanbe\\\",\\\"notes\\\":\\\"Moderate + hotel with good reviews.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Restaurant Shodlik\\\",\\\"location\\\":\\\"Shodlik Restaurant\\\",\\\"notes\\\":\\\"Try + local dishes like Plov and Shashlik.\\\"},{\\\"time\\\":\\\"01:30 PM\\\",\\\"activity\\\":\\\"Visit + the National Museum of Tajikistan\\\",\\\"location\\\":\\\"Dushanbe\\\",\\\"notes\\\":\\\"Explore + Tajik history and culture.\\\"},{\\\"time\\\":\\\"03:30 PM\\\",\\\"activity\\\":\\\"Walk + around Rudaki Park\\\",\\\"location\\\":\\\"Rudaki Park\\\",\\\"notes\\\":\\\"Enjoy + the greenery and relax.\\\"},{\\\"time\\\":\\\"06:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Restaurant Dushanbe\\\",\\\"location\\\":\\\"Restaurant Dushanbe\\\",\\\"notes\\\":\\\"Known + for traditional Tajik cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Shodlik\\\",\\\"Dinner + at Restaurant Dushanbe\\\"],\\\"accommodation\\\":\\\"Hotel Atlas Dushanbe\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Adventure + in the Mountains\\\",\\\"activities\\\":[{\\\"time\\\":\\\"08:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Hotel Atlas Dushanbe\\\",\\\"notes\\\":\\\"Start + your day with a hearty breakfast.\\\"},{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Day + trip to Fann Mountains\\\",\\\"location\\\":\\\"Fann Mountains\\\",\\\"notes\\\":\\\"Hire + a local guide for an adventure hike.\\\"},{\\\"time\\\":\\\"12:30 PM\\\",\\\"activity\\\":\\\"Picnic + lunch at Alaudin Lakes\\\",\\\"location\\\":\\\"Alaudin Lakes\\\",\\\"notes\\\":\\\"Pack + lunch from the hotel.\\\"},{\\\"time\\\":\\\"02:00 PM\\\",\\\"activity\\\":\\\"Hiking + around the lakes\\\",\\\"location\\\":\\\"Alaudin Lakes\\\",\\\"notes\\\":\\\"Enjoy + stunning views and take photos.\\\"},{\\\"time\\\":\\\"05:00 PM\\\",\\\"activity\\\":\\\"Return + to Dushanbe\\\",\\\"location\\\":\\\"Dushanbe\\\",\\\"notes\\\":\\\"Relax + after an adventurous day.\\\"},{\\\"time\\\":\\\"07:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Kebab House\\\",\\\"location\\\":\\\"Kebab House\\\",\\\"notes\\\":\\\"Savor + delicious kebabs and local drinks.\\\"}],\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '133017' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/b37b4c7727a54482f8c71cb88799c108 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"X6XgDzvu2/o=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214208334000\",\"endTimeUnixNano\":\"1763042288332434000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ykfIkleyfn8=\",\"parentSpanId\":\"X6XgDzvu2/o=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214208605000\",\"endTimeUnixNano\":\"1763042288332353000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"JhAH0yZx3Ik=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214215610000\",\"endTimeUnixNano\":\"1763042217450079000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"928\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"21\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"949\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"7Pd25D1LOvw=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042217450618000\",\"endTimeUnixNano\":\"1763042219069521000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"Un2+PGYQ9to=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042219072031000\",\"endTimeUnixNano\":\"1763042221139663000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1456\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"19\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1475\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"IbK2qPHFUEU=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042221140625000\",\"endTimeUnixNano\":\"1763042223209324000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"f1ybKu8yoWY=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042223210273000\",\"endTimeUnixNano\":\"1763042226350110000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1544\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"36\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1580\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"Mix/K/BkE/k=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042226350768000\",\"endTimeUnixNano\":\"1763042227769106000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ZIkq2QIEfJc=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042227770300000\",\"endTimeUnixNano\":\"1763042229857312000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1862\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"19\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1881\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"th//dB4A1jI=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042229857982000\",\"endTimeUnixNano\":\"1763042230935832000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"rnS972TaPFE=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042230937025000\",\"endTimeUnixNano\":\"1763042234891211000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b5b6d48194ac4ff233dc086dc6\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Bratislava' info=DestinationInfo(title='Bratislava', + summary='Capital and largest city of Slovakia', extract='Bratislava is the + capital and largest city of the Slovak Republic and the fourth largest of + all cities on the river Danube. Officially, the population of the city is + about 475,000; however, some sources estimate the daily number of people moving + around the city based on mobile phone SIM cards is more than 570,000. Bratislava + is in southwestern Slovakia at the foot of the Little Carpathians, occupying + both banks of the Danube and the left bank of the River Morava. The city is + situated on the border of three countries\u2014Slovakia, Austria, and Hungary\u2014and + is the only national capital to have land borders with two other sovereign + states. Its geographic position places it exceptionally close to the Austrian + capital Vienna, making them the closest pair of capital cities in Europe at + just 50 kilometres (31\\\\xa0mi) apart.')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"cultural + exploration, history, local cuisine\\\",\\\"weather_info\\\":\\\"Current temperature + is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\\",\\\"destination_details\\\":\\\"Bratislava is the + capital and largest city of Slovakia, known for its location by the Danube + River and proximity to Austria and Hungary. It's an important cultural, economic, + and educational center of the region.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_Ka1nJGRoPHD4PU7UUYNV3Gpi\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2097\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"136\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2233\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"4+Xf2IVfm8g=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042234891664000\",\"endTimeUnixNano\":\"1763042274301203000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"tlKdJZeE6c0=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042274303621000\",\"endTimeUnixNano\":\"1763042288331400000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b5b6d48194ac4ff233dc086dc6\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Bratislava' info=DestinationInfo(title='Bratislava', + summary='Capital and largest city of Slovakia', extract='Bratislava is the + capital and largest city of the Slovak Republic and the fourth largest of + all cities on the river Danube. Officially, the population of the city is + about 475,000; however, some sources estimate the daily number of people moving + around the city based on mobile phone SIM cards is more than 570,000. Bratislava + is in southwestern Slovakia at the foot of the Little Carpathians, occupying + both banks of the Danube and the left bank of the River Morava. The city is + situated on the border of three countries\u2014Slovakia, Austria, and Hungary\u2014and + is the only national capital to have land borders with two other sovereign + states. Its geographic position places it exceptionally close to the Austrian + capital Vienna, making them the closest pair of capital cities in Europe at + just 50 kilometres (31\\\\xa0mi) apart.')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b8467481948a834b801a722259\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"cultural + exploration, history, local cuisine\\\",\\\"weather_info\\\":\\\"Current temperature + is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\\",\\\"destination_details\\\":\\\"Bratislava is the + capital and largest city of Slovakia, known for its location by the Danube + River and proximity to Austria and Hungary. It's an important cultural, economic, + and educational center of the region.\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 5-day itinerary for Bratislava' itinerary=TravelItinerary(trip_title='Cultural + Journey Through Bratislava', destination='Bratislava', duration_days=5, total_budget_estimate='$800', + daily_plans=[DayPlan(day_number=1, date='2023-11-15', title='Arrival and Old + Town Exploration', activities=[DayActivity(time='10:00 AM', activity='Arrive + in Bratislava', location='Bratislava Airport', notes='Take a taxi or shuttle + to the city center.'), DayActivity(time='11:30 AM', activity='Check-in to + accommodation', location='Hotel Danubia', notes='Moderate hotel near the city + center.'), DayActivity(time='12:30 PM', activity='Lunch at Slovak Pub', location='Obchodn\xE1 + 62', notes='Try traditional Slovak dishes like bryndzov\xE9 halu\u0161ky.'), + DayActivity(time='2:00 PM', activity='Stroll through the Old Town', location='Bratislava + Old Town', notes=\\\"Visit St. Michael's Gate, Main Square, and the Old Town + Hall.\\\"), DayActivity(time='4:00 PM', activity='Visit the Bratislava City + Museum', location='Radni\u010Dn\xE1 1', notes=\\\"Learn about the city's history.\\\"), + DayActivity(time='6:00 PM', activity='Dinner at Flagship Restaurant', location='Hlavn\xE9 + n\xE1mestie 4', notes='Enjoy local cuisine with a modern twist.')], meals=['Lunch + at Slovak Pub', 'Dinner at Flagship Restaurant'], accommodation='Hotel Danubia'), + DayPlan(day_number=2, date='2023-11-16', title='Castles and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at hotel', location='Hotel Danubia', notes='Enjoy + a complimentary breakfast.'), DayActivity(time='9:30 AM', activity='Visit + Bratislava Castle', location='Bratislava Castle', notes='Explore the castle + and enjoy views of the Danube.'), DayActivity(time='12:00 PM', activity='Lunch + at Caf\xE9 23', location='Karpatsk\xE1 23', notes='A trendy caf\xE9 with local + dishes.'), DayActivity(time='1:30 PM', activity='Tour the Slovak National + Gallery', location='R\xE1zusovo n\xE1bre\u017Eie 2', notes='Explore Slovak + art and culture.'), DayActivity(time='4:00 PM', activity='Relax at Sad Janka + Kr\xE1\u013Ea park', location='\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_Ka1nJGRoPHD4PU7UUYNV3Gpi\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"I've + planned a 5-day cultural journey to Bratislava, Slovakia for you. Here's your + itinerary:\\n\\n### Cultural Journey Through Bratislava\\n\\n#### **Day 1: + Arrival and Old Town Exploration**\\n- **10:00 AM:** Arrive in Bratislava + - Shuttle or taxi to city center.\\n- **11:30 AM:** Check-in to Hotel Danubia.\\n- + **12:30 PM:** Lunch at Slovak Pub - Try bryndzov\xE9 halu\u0161ky.\\n- **2:00 + PM:** Stroll through the Old Town - Visit St. Michael's Gate.\\n- **4:00 PM:** + Visit the Bratislava City Museum.\\n- **6:00 PM:** Dinner at Flagship Restaurant.\\n\\n#### + **Day 2: Castles and Culture**\\n- **8:00 AM:** Breakfast at Hotel Danubia.\\n- + **9:30 AM:** Visit Bratislava Castle - Great views of the Danube.\\n- **12:00 + PM:** Lunch at Caf\xE9 23.\\n- **1:30 PM:** Tour the Slovak National Gallery.\\n- + **4:00 PM:** Relax at Sad Janka Kr\xE1\u013Ea park.\\n- **7:00 PM:** Dinner + at Modr\xE1 Hviezda.\\n\\n#### **Day 3: Day Trip to Devin Castle**\\n- **8:00 + AM:** Breakfast at Hotel Danubia.\\n- **9:30 AM:** Travel to Devin Castle.\\n- + **10:00 AM:** Explore Devin Castle.\\n- **12:30 PM:** Lunch at Restaurant + Devin.\\n- **2:00 PM:** Return to Bratislava.\\n- **3:00 PM:** Visit the Blue + Church.\\n- **5:00 PM:** Free time in Old Town.\\n- **7:00 PM:** Dinner at + U Zlateho Hruska.\\n\\n#### **Day 4: Art and History**\\n- **8:00 AM:** Breakfast + at Hotel Danubia.\\n- **9:30 AM:** Visit the Museum of Jewish Culture.\\n- + **11:30 AM:** Explore the Bratislava City Gallery.\\n- **1:00 PM:** Lunch + at Urban House.\\n- **3:00 PM:** Visit the Presidential Palace.\\n- **5:00 + PM:** Dinner at Primi.\\n\\n#### **Day 5: Departure and Local Markets**\\n- + **8:00 AM:** Breakfast at Hotel Danubia.\\n- **9:30 AM:** Visit the Old Market + Hall.\\n- **11:00 AM:** Free time for shopping.\\n- **1:00 PM:** Lunch at + the market.\\n- **2:30 PM:** Check-out from hotel.\\n- **3:00 PM:** Transfer + to airport.\\n\\n### Travel Tips\\n- Use public transport for getting around + the city.\\n- Carry an umbrella or rain jacket for rain on November 17 and + 19.\\n- Learn basic Slovak phrases to enhance local interactions.\\n\\n### + Packing Suggestions\\n- Warm clothing layers and comfortable walk\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"3764\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"608\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4372\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ga2ddWDpwj0=\",\"parentSpanId\":\"7Pd25D1LOvw=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042217954037000\",\"endTimeUnixNano\":\"1763042219061913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"qlkYoPsmsxQ=\",\"parentSpanId\":\"IbK2qPHFUEU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042222244554000\",\"endTimeUnixNano\":\"1763042223207393000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Bratislava\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"OxRjSied6Tk=\",\"parentSpanId\":\"Mix/K/BkE/k=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042226855593000\",\"endTimeUnixNano\":\"1763042227766872000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=48.1516988\\u0026longitude=17.1093063\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"hMj8FLIUcPo=\",\"parentSpanId\":\"th//dB4A1jI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042230364285000\",\"endTimeUnixNano\":\"1763042230934612000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Bratislava\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"kUQ5JjMwU3s=\",\"parentSpanId\":\"4+Xf2IVfm8g=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042235404005000\",\"endTimeUnixNano\":\"1763042274299868000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 5-day itinerary for Bratislava.\\n\\nTrip + Details:\\n- Destination: Bratislava\\n- Duration: 5 days\\n- Budget: moderate\\n- + Interests: cultural exploration, history, local cuisine\\n- Weather: Current + temperature is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\n- Destination Info: Bratislava is the capital and + largest city of Slovakia, known for its location by the Danube River and proximity + to Austria and Hungary. It's an important cultural, economic, and educational + center of the region.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and cultural exploration, history, local cuisine + interests.\\nEach day should have 3-5 activities with specific times, locations, + and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS72PQr8E6ISNBF6AHyK4FMvQhCE\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2032\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1443\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"589\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Cultural + Journey Through Bratislava\\\",\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"total_budget_estimate\\\":\\\"$800\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-15\\\",\\\"title\\\":\\\"Arrival + and Old Town Exploration\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Bratislava\\\",\\\"location\\\":\\\"Bratislava Airport\\\",\\\"notes\\\":\\\"Take + a taxi or shuttle to the city center.\\\"},{\\\"time\\\":\\\"11:30 AM\\\",\\\"activity\\\":\\\"Check-in + to accommodation\\\",\\\"location\\\":\\\"Hotel Danubia\\\",\\\"notes\\\":\\\"Moderate + hotel near the city center.\\\"},{\\\"time\\\":\\\"12:30 PM\\\",\\\"activity\\\":\\\"Lunch + at Slovak Pub\\\",\\\"location\\\":\\\"Obchodn\xE1 62\\\",\\\"notes\\\":\\\"Try + traditional Slovak dishes like bryndzov\xE9 halu\u0161ky.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Stroll through the Old Town\\\",\\\"location\\\":\\\"Bratislava + Old Town\\\",\\\"notes\\\":\\\"Visit St. Michael's Gate, Main Square, and + the Old Town Hall.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Visit + the Bratislava City Museum\\\",\\\"location\\\":\\\"Radni\u010Dn\xE1 1\\\",\\\"notes\\\":\\\"Learn + about the city's history.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Flagship Restaurant\\\",\\\"location\\\":\\\"Hlavn\xE9 n\xE1mestie 4\\\",\\\"notes\\\":\\\"Enjoy + local cuisine with a modern twist.\\\"}],\\\"meals\\\":[\\\"Lunch at Slovak + Pub\\\",\\\"Dinner at Flagship Restaurant\\\"],\\\"accommodation\\\":\\\"Hotel + Danubia\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-16\\\",\\\"title\\\":\\\"Castles + and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at hotel\\\",\\\"location\\\":\\\"Hotel Danubia\\\",\\\"notes\\\":\\\"Enjoy + a complimentary breakfast.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Bratislava Castle\\\",\\\"location\\\":\\\"Bratislava Castle\\\",\\\"notes\\\":\\\"Explore + the castle and enjoy views of the Danube.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Caf\xE9 23\\\",\\\"location\\\":\\\"Karpatsk\xE1 23\\\",\\\"notes\\\":\\\"A + trendy caf\xE9 with local dishes.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Tour + the Slovak National Gallery\\\",\\\"location\\\":\\\"R\xE1zusovo n\xE1bre\u017Eie + 2\\\",\\\"notes\\\":\\\"Explore Slovak art and culture.\\\"},{\\\"time\\\":\\\"4:00 + PM\\\",\\\"activity\\\":\\\"Relax at Sad Janka Kr\xE1\u013Ea park\\\",\\\"location\\\":\\\"Sad + Janka Kr\xE1\u013Ea\\\",\\\"notes\\\":\\\"Enjoy nature and views of the Danube.\\\"},{\\\"time\\\":\\\"7:00 + PM\\\",\\\"activity\\\":\\\"Dinner at Modr\xE1 Hviezda\\\",\\\"location\\\":\\\"Hradn\xE9 + n\xE1mestie 2\\\",\\\"notes\\\":\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '86232' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/42ff472d7feb6215bec0cf4e350675b2 + response: + body: + string: '{"batches":[{"resource":{"attributes":[{"key":"telemetry.sdk.language","value":{"stringValue":"python"}},{"key":"telemetry.sdk.name","value":{"stringValue":"opentelemetry"}},{"key":"telemetry.sdk.version","value":{"stringValue":"1.38.0"}},{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},"scopeSpans":[{"scope":{"name":"opentelemetry.instrumentation.openai_agents","version":"0.47.5"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"NPzxuz+vo54=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187236891000","endTimeUnixNano":"1763042189460181000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"gen_ai.prompt.0.role","value":{"stringValue":"user"}},{"key":"gen_ai.prompt.0.content","value":{"stringValue":"I + want to visit New York for 7 days with a moderate budget. I love history. + Create me an itinerary."}},{"key":"llm.request.functions.0.name","value":{"stringValue":"search_destinations"}},{"key":"llm.request.functions.0.description","value":{"stringValue":"Search + for travel destinations by region or subregion using REST Countries API."}},{"key":"llm.request.functions.0.parameters","value":{"stringValue":"{\"properties\": + {\"region\": {\"default\": \"\", \"description\": \"Region to search (e.g., + \\\"Europe\\\", \\\"Asia\\\", \\\"Americas\\\")\", \"title\": \"Region\", + \"type\": \"string\"}, \"subregion\": {\"default\": \"\", \"description\": + \"Subregion to search (e.g., \\\"Southern Europe\\\", \\\"Southeast Asia\\\")\", + \"title\": \"Subregion\", \"type\": \"string\"}}, \"title\": \"search_destinations_args\", + \"type\": \"object\", \"additionalProperties\": false, \"required\": [\"region\", + \"subregion\"]}"}},{"key":"llm.request.functions.1.name","value":{"stringValue":"get_location_coordinates"}},{"key":"llm.request.functions.1.description","value":{"stringValue":"Get + coordinates for a location using Nominatim (OpenStreetMap) API."}},{"key":"llm.request.functions.1.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the city or location\", \"title\": + \"Location Name\", \"type\": \"string\"}}, \"required\": [\"location_name\"], + \"title\": \"get_location_coordinates_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.2.name","value":{"stringValue":"get_weather_forecast"}},{"key":"llm.request.functions.2.description","value":{"stringValue":"Get + current weather and 7-day forecast using Open-Meteo API (no API key required)."}},{"key":"llm.request.functions.2.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the location\", \"title\": + \"Location Name\", \"type\": \"string\"}, \"latitude\": {\"description\": + \"Latitude coordinate\", \"title\": \"Latitude\", \"type\": \"number\"}, \"longitude\": + {\"description\": \"Longitude coordinate\", \"title\": \"Longitude\", \"type\": + \"number\"}}, \"required\": [\"location_name\", \"latitude\", \"longitude\"], + \"title\": \"get_weather_forecast_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.3.name","value":{"stringValue":"get_destination_info"}},{"key":"llm.request.functions.3.description","value":{"stringValue":"Get + information about a destination from Wikipedia API."}},{"key":"llm.request.functions.3.parameters","value":{"stringValue":"{\"properties\": + {\"destination_name\": {\"description\": \"Name of the destination\", \"title\": + \"Destination Name\", \"type\": \"string\"}}, \"required\": [\"destination_name\"], + \"title\": \"get_destination_info_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.4.name","value":{"stringValue":"calculate_travel_distance"}},{"key":"llm.request.functions.4.description","value":{"stringValue":"Calculate + distance and estimated flight time between two locations.\nUses Haversine + formula for distance calculation."}},{"key":"llm.request.functions.4.parameters","value":{"stringValue":"{\"properties\": + {\"from_location\": {\"description\": \"Starting location name\", \"title\": + \"From Location\", \"type\": \"string\"}, \"to_location\": {\"description\": + \"Destination location name\", \"title\": \"To Location\", \"type\": \"string\"}, + \"from_lat\": {\"description\": \"Starting latitude\", \"title\": \"From Lat\", + \"type\": \"number\"}, \"from_lon\": {\"description\": \"Starting longitude\", + \"title\": \"From Lon\", \"type\": \"number\"}, \"to_lat\": {\"description\": + \"Destination latitude\", \"title\": \"To Lat\", \"type\": \"number\"}, \"to_lon\": + {\"description\": \"Destination longitude\", \"title\": \"To Lon\", \"type\": + \"number\"}}, \"required\": [\"from_location\", \"to_location\", \"from_lat\", + \"from_lon\", \"to_lat\", \"to_lon\"], \"title\": \"calculate_travel_distance_args\", + \"type\": \"object\", \"additionalProperties\": false}"}},{"key":"llm.request.functions.5.name","value":{"stringValue":"create_itinerary"}},{"key":"llm.request.functions.5.description","value":{"stringValue":"Create + a detailed day-by-day travel itinerary using AI."}},{"key":"llm.request.functions.5.parameters","value":{"stringValue":"{\"properties\": + {\"destination\": {\"description\": \"Main destination for the trip\", \"title\": + \"Destination\", \"type\": \"string\"}, \"duration_days\": {\"description\": + \"Number of days for the trip\", \"title\": \"Duration Days\", \"type\": \"integer\"}, + \"budget\": {\"description\": \"Budget level (budget, moderate, luxury)\", + \"title\": \"Budget\", \"type\": \"string\"}, \"interests\": {\"description\": + \"Traveler interests (e.g., food, history, nature)\", \"title\": \"Interests\", + \"type\": \"string\"}, \"weather_info\": {\"default\": \"\", \"description\": + \"Weather forecast information (optional)\", \"title\": \"Weather Info\", + \"type\": \"string\"}, \"destination_details\": {\"default\": \"\", \"description\": + \"Additional destination details (optional)\", \"title\": \"Destination Details\", + \"type\": \"string\"}}, \"required\": [\"destination\", \"duration_days\", + \"budget\", \"interests\", \"weather_info\", \"destination_details\"], \"title\": + \"create_itinerary_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"gen_ai.request.temperature","value":{"doubleValue":1}},{"key":"gen_ai.request.top_p","value":{"doubleValue":1}},{"key":"gen_ai.request.model","value":{"stringValue":"gpt-4o-2024-08-06"}},{"key":"gen_ai.completion.0.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.0.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.0.tool_calls.0.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.0.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\"}"}},{"key":"gen_ai.completion.0.tool_calls.0.id","value":{"stringValue":"call_M6Cz1ZtgBBRVhPAKwGhP4HkH"}},{"key":"gen_ai.completion.1.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.1.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.1.tool_calls.0.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.1.tool_calls.0.arguments","value":{"stringValue":"{\"destination_name\":\"New + York\"}"}},{"key":"gen_ai.completion.1.tool_calls.0.id","value":{"stringValue":"call_XjU0qIs2w9toMdl7I78qNPRd"}},{"key":"gen_ai.completion.2.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.2.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.2.tool_calls.0.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.2.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\",\"latitude\":40.7128,\"longitude\":-74.006}"}},{"key":"gen_ai.completion.2.tool_calls.0.id","value":{"stringValue":"call_vW1iVMpxm4W5VAjz3uvhFwxl"}},{"key":"gen_ai.usage.prompt_tokens","value":{"intValue":"313"}},{"key":"gen_ai.usage.completion_tokens","value":{"intValue":"81"}},{"key":"llm.usage.total_tokens","value":{"intValue":"394"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Jn+55BUIsg8=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042192790536000","endTimeUnixNano":"1763042197342144000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"qUtAVv3MWrg=","parentSpanId":"i9g02JupVjo=","name":"Travel + Planner Agent.agent","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187234430000","endTimeUnixNano":"1763042197342199000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"agent"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"i9g02JupVjo=","name":"Agent + Workflow","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187232503000","endTimeUnixNano":"1763042197342213000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"workflow"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.workflow.name","value":{"stringValue":"Agent + Workflow"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"ndtaGw2O47w=","parentSpanId":"qUtAVv3MWrg=","name":"get_destination_info.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461414000","endTimeUnixNano":"1763042192787831000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"lAvl8cSGCdQ=","parentSpanId":"qUtAVv3MWrg=","name":"get_weather_forecast.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461614000","endTimeUnixNano":"1763042192787979000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"DRPQ4fXYGOk=","parentSpanId":"qUtAVv3MWrg=","name":"get_location_coordinates.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461045000","endTimeUnixNano":"1763042192788272000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}}]},{"scope":{"name":"opentelemetry.instrumentation.requests","version":"0.59b0"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"gvjOX9XKnIQ=","parentSpanId":"ndtaGw2O47w=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042189966888000","endTimeUnixNano":"1763042190649032000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://en.wikipedia.org/api/rest_v1/page/summary/New%20York"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Vd7J6WeIkI0=","parentSpanId":"lAvl8cSGCdQ=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042190650755000","endTimeUnixNano":"1763042191744238000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://api.open-meteo.com/v1/forecast?latitude=40.7128\u0026longitude=-74.006\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\u0026timezone=auto\u0026forecast_days=7"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"QO7ZImsbB1g=","parentSpanId":"DRPQ4fXYGOk=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042191747300000","endTimeUnixNano":"1763042192786263000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://nominatim.openstreetmap.org/search?q=New+York\u0026format=json\u0026limit=1"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}}]}]}]}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '14143' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/9a8cb895bee63fabb705329a05ced33b + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"VVGqP3Zlh/I=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057714246000\",\"endTimeUnixNano\":\"1763042185226841000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ebIwige/t/I=\",\"parentSpanId\":\"VVGqP3Zlh/I=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057715150000\",\"endTimeUnixNano\":\"1763042185226760000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"XmMF4QV1t5I=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042160420265000\",\"endTimeUnixNano\":\"1763042185224042000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31f412c8193854f3d40a67569bb\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3203a048193a1db4cd095de78a1\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.19.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Malta' itinerary=TravelItinerary(trip_title='Malta: + A Luxurious Journey Through History and Culture', destination='Malta', duration_days=7, + total_budget_estimate='\u20AC5000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Valletta', activities=[DayActivity(time='10:00 AM', activity='Check + into the hotel.', location='Palazzo Consiglia, Valletta', notes='Luxurious + boutique hotel with a historic feel.'), DayActivity(time='12:00 PM', activity='Lunch + at the hotel restaurant.', location='Palazzo Consiglia', notes='Try local + specialties.'), DayActivity(time='2:00 PM', activity='Explore Valletta on + foot.', location='Valletta', notes=\\\"Visit St. John's Co-Cathedral and the + Upper Barracca Gardens.\\\"), DayActivity(time='5:00 PM', activity='Enjoy + a sunset at the Barracca Lift.', location='Upper Barracca Gardens', notes='Stunning + views of the Grand Harbour.'), DayActivity(time='7:30 PM', activity='Dinner + at The Harbour Club.', location='Valletta', notes='Fine dining with Mediterranean + cuisine.')], meals=['Lunch at Palazzo Consiglia', 'Dinner at The Harbour Club'], + accommodation='Palazzo Consiglia, Valletta'), DayPlan(day_number=2, date='2023-10-02', + title='Historical Wonders of Mdina', activities=[DayActivity(time='9:00 AM', + activity='Breakfast at the hotel.', location='Palazzo Consiglia', notes='Enjoy + a gourmet breakfast.'), DayActivity(time='10:30 AM', activity='Visit Mdina, + the Silent City.', location='Mdina', notes='Explore the narrow streets and + historic architecture.'), DayActivity(time='1:00 PM', activity='Lunch at Fontanella + Tea Garden.', location='Mdina', notes='Famous for its cakes and views.'), + DayActivity(time='3:00 PM', activity=\\\"Visit St. Paul's Cathedral and the + Mdina Dungeons.\\\", location='Mdina', notes='Immerse in the history of the + city.'), DayActivity(time='6:00 PM', activity='Return to Valletta.', location='Valletta', + notes='Free evening to relax.'), DayActivity(time='8:00 PM', activity='Dinner + at La Viletta.', location='Valletta', n\"}},{\"key\":\"gen_ai.prompt.19.tool_call_id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Paradise + Found: A Luxurious Escape to Barbados', destination='Barbados', duration_days=7, + total_budget_estimate='$5,000', daily_plans=[DayPlan(day_number=1, date='2023-11-01', + title='Arrival and Beach Relaxation', activities=[DayActivity(time='10:00 + AM', activity='Arrival at Grantley Adams International Airport', location='Bridgetown', + notes='Private transfer to hotel.'), DayActivity(time='12:00 PM', activity='Check-in + at Sandy Lane Hotel', location='Sandy Lane, St. James', notes='Enjoy a welcome + drink upon arrival.'), DayActivity(time='1:00 PM', activity='Lunch at The + Bajan Blue', location='Sandy Lane Hotel', notes='Try the fresh catch of the + day.'), DayActivity(time='3:00 PM', activity='Relax at the beach', location='Sandy + Lane Beach', notes='Enjoy complimentary beach services and cabanas.'), DayActivity(time='7:00 + PM', activity=\\\"Dinner at L'Acajou\\\", location='Sandy Lane Hotel', notes='Reserve + a table for an oceanfront dining experience.')], meals=['Lunch at The Bajan + Blue', \\\"Dinner at L'Acajou\\\"], accommodation='Sandy Lane Hotel'), DayPlan(day_number=2, + date='2023-11-02', title='Exploring the Nature and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at The Bajan Blue', location='Sandy Lane Hotel', + notes='Buffet breakfast included.'), DayActivity(time='9:30 AM', activity=\\\"Visit + Harrison's Cave\\\", location='Welches, St. Thomas', notes='Guided tram tour + of the limestone caves.'), DayActivity(time='12:00 PM', activity='Lunch at + The Cliff', location='The Cliff, St. James', notes='One of the best views + in Barbados.'), DayActivity(time='2:00 PM', activity='Explore the Andromeda + Botanic Gardens', location='Bathsheba', notes='Stroll through beautiful tropical + plants.'), DayActivity(time='5:00 PM', activity='Return to hotel and relax + by the pool', location='Sandy Lane Hotel', notes='Enjoy the sunset views.'), + DayActivity(time='8:00 PM', activity='Dinner at The Tides', location='Holetown', + notes='Fin\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a luxurious winter getaway itinerary for two amazing destinations: Malta and + Barbados. You can choose either for a memorable experience!\\n\\n### Malta: + A Luxurious Journey Through History and Culture\\n\\n#### Overview:\\n- **Duration:** + 7 Days\\n- **Budget:** \u20AC5000\\n- **Interests:** History, culture, relaxation\\n- + **Weather:** Partly cloudy, 14\xB0C to 25\xB0C\\n\\n#### Highlights:\\n- **Explore + Valletta:** Discover historic sites like St. John's Co-Cathedral and the Upper + Barracca Gardens.\\n- **Visit Mdina:** Wander through the narrow streets of + the Silent City.\\n- **Cruise the Blue Lagoon:** Relax and swim in crystal-clear + waters on Comino Island.\\n- **Art and Culture in Valletta:** Enjoy museums, + the Grand Master's Palace, and traditional Maltese cuisine.\\n- **Day in Gozo:** + Experience UNESCO sites and enjoy local cuisine in Xlendi Bay.\\n- **Relaxation + and Spa Day:** Indulge in luxury spa treatments and wine tasting.\\n\\n#### + Suggested Activities:\\n- Stroll through the National Museum of Archaeology.\\n- + Enjoy a Michelin-starred dining experience at Noni.\\n- Unwind at the historic + and luxurious Palazzo Consiglia.\\n\\n---\\n\\n### Barbados: Paradise Found\\n\\n#### + Overview:\\n- **Duration:** 7 Days\\n- **Budget:** $5,000\\n- **Interests:** + Beach, nature, relaxation\\n- **Weather:** Mainly clear with occasional rain, + 26\xB0C to 28\xB0C\\n\\n#### Highlights:\\n- **Stay at Sandy Lane:** Experience + luxury at a top-notch hotel.\\n- **Catamaran Cruise:** Snorkel and swim with + turtles.\\n- **Visit Harrison's Cave:** Explore stunning limestone formations.\\n- + **Beach Relaxation:** Enjoy water sports and sunbathing at Sandy Lane Beach.\\n- + **Cultural Sightseeing:** Visit the Barbados Museum and Andromeda Botanic + Gardens.\\n- **Island Adventure:** Discover the Animal Flower Cave and Bathsheba + Beach.\\n\\n#### Suggested Activities:\\n- Indulge in a private yoga session + on the beach.\\n- Savor local flavors at dining spots like The Cliff and Oistins + Fish Fry.\\n- Book a spa treatment for ultimate relaxation.\\n\\nChoose either + Malta for its rich history and culture or Barbados for its tropical para\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"6963\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"482\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7445\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"embCySXGZiM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057716128000\",\"endTimeUnixNano\":\"1763042059661983000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"60\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"525\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"mC8CCwLW76g=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663097000\",\"endTimeUnixNano\":\"1763042062451067000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ssDCKShkL44=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663477000\",\"endTimeUnixNano\":\"1763042062451172000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fuu6tO+Ndlo=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042062452499000\",\"endTimeUnixNano\":\"1763042064799092000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1003\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1055\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fvHJdvNTMws=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064799830000\",\"endTimeUnixNano\":\"1763042067739773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"T8dJZDmT4I4=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064800127000\",\"endTimeUnixNano\":\"1763042067739862000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"v6cWcKHOCjI=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042067741423000\",\"endTimeUnixNano\":\"1763042070448846000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1077\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"86\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1163\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"UEIsxC37pwE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449031000\",\"endTimeUnixNano\":\"1763042072801957000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"THKreibx8ug=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449103000\",\"endTimeUnixNano\":\"1763042072802080000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"YBTnmbTN6jE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042072803790000\",\"endTimeUnixNano\":\"1763042075107212000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1391\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1443\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"SxqLZKfWCmA=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108148000\",\"endTimeUnixNano\":\"1763042076670490000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"5dBBk3l1eiQ=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108516000\",\"endTimeUnixNano\":\"1763042076670556000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"cE+1FFJhlnU=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076671577000\",\"endTimeUnixNano\":\"1763042082126494000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1535\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"208\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1743\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"QAlZHx6RuLM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082127730000\",\"endTimeUnixNano\":\"1763042160416987000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"th2IYCV4hsE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082128207000\",\"endTimeUnixNano\":\"1763042160417136000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HDPGse/8x4o=\",\"parentSpanId\":\"mC8CCwLW76g=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042060166394000\",\"endTimeUnixNano\":\"1763042061283475000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"IA+JMvfXJl8=\",\"parentSpanId\":\"ssDCKShkL44=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042061306153000\",\"endTimeUnixNano\":\"1763042062439682000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"PzmXYx0yNzo=\",\"parentSpanId\":\"fvHJdvNTMws=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042065903652000\",\"endTimeUnixNano\":\"1763042066847763000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Malta\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ON9RLT3j6a4=\",\"parentSpanId\":\"T8dJZDmT4I4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042066849545000\",\"endTimeUnixNano\":\"1763042067737708000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"M2Q2FV2cXIU=\",\"parentSpanId\":\"UEIsxC37pwE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042070951475000\",\"endTimeUnixNano\":\"1763042071877256000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=35.8885993\\u0026longitude=14.4476911\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Ze33HN9DUpc=\",\"parentSpanId\":\"THKreibx8ug=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042071879722000\",\"endTimeUnixNano\":\"1763042072800019000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HKpm5tCLJzU=\",\"parentSpanId\":\"SxqLZKfWCmA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042075611055000\",\"endTimeUnixNano\":\"1763042076145487000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Malta\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"lAzYqhlHfpg=\",\"parentSpanId\":\"5dBBk3l1eiQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076148467000\",\"endTimeUnixNano\":\"1763042076669422000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Znd3vlNcirg=\",\"parentSpanId\":\"th2IYCV4hsE=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042123087205000\",\"endTimeUnixNano\":\"1763042160414874000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: beach, nature, relaxation\\n- Weather: Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\n- Destination Info: Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the luxury budget level and beach, nature, + relaxation interests.\\nEach day should have 3-5 activities with specific + times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS5EtpivASLkttPJzZ83ik15FlLX\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2260\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1719\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"541\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Paradise + Found: A Luxurious Escape to Barbados\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$5,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-01\\\",\\\"title\\\":\\\"Arrival + and Beach Relaxation\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrival + at Grantley Adams International Airport\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Private + transfer to hotel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at Sandy Lane Hotel\\\",\\\"location\\\":\\\"Sandy Lane, St. James\\\",\\\"notes\\\":\\\"Enjoy + a welcome drink upon arrival.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Try + the fresh catch of the day.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at the beach\\\",\\\"location\\\":\\\"Sandy Lane Beach\\\",\\\"notes\\\":\\\"Enjoy + complimentary beach services and cabanas.\\\"},{\\\"time\\\":\\\"7:00 PM\\\",\\\"activity\\\":\\\"Dinner + at L'Acajou\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Reserve + a table for an oceanfront dining experience.\\\"}],\\\"meals\\\":[\\\"Lunch + at The Bajan Blue\\\",\\\"Dinner at L'Acajou\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-02\\\",\\\"title\\\":\\\"Exploring + the Nature and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Buffet + breakfast included.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Harrison's Cave\\\",\\\"location\\\":\\\"Welches, St. Thomas\\\",\\\"notes\\\":\\\"Guided + tram tour of the limestone caves.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Cliff\\\",\\\"location\\\":\\\"The Cliff, St. James\\\",\\\"notes\\\":\\\"One + of the best views in Barbados.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + the Andromeda Botanic Gardens\\\",\\\"location\\\":\\\"Bathsheba\\\",\\\"notes\\\":\\\"Stroll + through beautiful tropical plants.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to hotel and relax by the pool\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Enjoy + the sunset views.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Tides\\\",\\\"location\\\":\\\"Holetown\\\",\\\"notes\\\":\\\"Fine + dining with a local twist.\\\"}],\\\"meals\\\":[\\\"Breakfast at The Bajan + Blue\\\",\\\"Lunch at The Cliff\\\",\\\"Dinner at The Tides\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"BVSE4lyy6Ng=\",\"parentSpanId\":\"QAlZHx6RuLM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042082648743000\",\"endTimeUnixNano\":\"1763042123074678000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Malta.\\n\\nTrip + Details:\\n- Destination: Malta\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: history, culture, relaxation\\n- Weather: Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\n- Destination Info: Malta is an island country + in Southern Europe, located in the Mediterranean Sea. The country's capital, + Valletta, is a historic city rich in culture and architecture. Official languages + are Maltese and English.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the luxury budget level and history, culture, relaxation interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS4aBtO0u5Rq9bvPgdgOeSH0n75R\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2342\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1792\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"550\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Malta: + A Luxurious Journey Through History and Culture\\\",\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC5000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Valletta\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia, Valletta\\\",\\\"notes\\\":\\\"Luxurious + boutique hotel with a historic feel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Try + local specialties.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + Valletta on foot.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Visit + St. John's Co-Cathedral and the Upper Barracca Gardens.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a sunset at the Barracca Lift.\\\",\\\"location\\\":\\\"Upper + Barracca Gardens\\\",\\\"notes\\\":\\\"Stunning views of the Grand Harbour.\\\"},{\\\"time\\\":\\\"7:30 + PM\\\",\\\"activity\\\":\\\"Dinner at The Harbour Club.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Fine + dining with Mediterranean cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Palazzo + Consiglia\\\",\\\"Dinner at The Harbour Club\\\"],\\\"accommodation\\\":\\\"Palazzo + Consiglia, Valletta\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Historical + Wonders of Mdina\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Enjoy + a gourmet breakfast.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Visit + Mdina, the Silent City.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Explore + the narrow streets and historic architecture.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Fontanella Tea Garden.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Famous + for its cakes and views.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + St. Paul's Cathedral and the Mdina Dungeons.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Immerse + in the history of the city.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Return + to Valletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Free + evening to relax.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at La Viletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Authentic + Maltese cuisine.\\\"}],\\\"meals\\\":[\\\"Breakfast at Palazzo Consiglia\\\",\\\"Lunch + at Fontanella Tea Garden\\\",\\\"Dinner at La Viletta\\\"],\\\"accommodation\\\":\\\"Palazzo\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '127530' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/693bde2879b745ff467c20bf9cd2ea7a + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"pApb0LsOSf0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984002122000\",\"endTimeUnixNano\":\"1763042055706374000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Ty846xocHPs=\",\"parentSpanId\":\"pApb0LsOSf0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984003244000\",\"endTimeUnixNano\":\"1763042055706244000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"r4Bxnys8Ajs=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042004652154000\",\"endTimeUnixNano\":\"1763042043092842000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"dvw9i3v4lK0=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042043095808000\",\"endTimeUnixNano\":\"1763042055704401000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2d2455c81978681b90b08ba66c7\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Nature + \\u0026 Adventure in New Zealand: A Week of Wonders', destination='New Zealand', + duration_days=7, total_budget_estimate='$1,500 - $2,000', daily_plans=[DayPlan(day_number=1, + date='2023-10-01', title='Arrival in Auckland', activities=[DayActivity(time='10:00 + AM', activity='Arrive at Auckland Airport', location='Auckland Airport', notes='Collect + rental car from the airport.'), DayActivity(time='12:00 PM', activity='Lunch + at Depot Eatery', location='Auckland', notes='Try local favorites like the + green-lipped mussels.'), DayActivity(time='2:00 PM', activity='Visit Auckland + War Memorial Museum', location='Domain Drive, Auckland', notes='Explore Maori + culture and New Zealand\u2019s natural history.'), DayActivity(time='4:00 + PM', activity='Stroll in Auckland Domain', location='Auckland', notes='Enjoy + the gardens and scenic views.'), DayActivity(time='6:00 PM', activity='Dinner + at The Glass Goose Bar \\u0026 Eatery', location='Auckland', notes='Outdoor + seating available.')], meals=['Lunch at Depot Eatery', 'Dinner at The Glass + Goose Bar \\u0026 Eatery'], accommodation='SkyCity Hotel, Auckland'), DayPlan(day_number=2, + date='2023-10-02', title='Exploring Rotorua', activities=[DayActivity(time='8:00 + AM', activity='Drive to Rotorua', location='Auckland to Rotorua (approx. 3 + hours)', notes='Enjoy scenic views along the way.'), DayActivity(time='11:00 + AM', activity='Visit Te Puia', location='Rotorua', notes='See geysers and + learn about Maori culture.'), DayActivity(time='1:00 PM', activity='Lunch + at Puku Puku Caf\xE9', location='Rotorua', notes='Sample local dishes.'), + DayActivity(time='3:00 PM', activity='Relax in the Polynesian Spa', location='Rotorua', + notes='Enjoy geothermal pools.'), DayActivity(time='6:00 PM', activity='Dinner + at Eat Streat', location='Rotorua', notes='Choose from various food stalls.')], + meals=['Lunch at Puku Puku Caf\xE9', 'Dinner at Eat Streat'], accommodation='Regent + of Rotorua'), DayPlan(day_number=3, date='2023-1\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"### + Nature \\u0026 Adventure in New Zealand: A Week of Wonders\\n\\n#### Destination: + New Zealand\\n- **Duration:** 7 Days\\n- **Budget:** Moderate ($1,500 - $2,000)\\n- + **Interests:** Nature, Adventure, Culture\\n\\n#### Weather Insights\\n- Current + conditions are overcast with a temperature of 7.6\xB0C.\\n- Expect mild temperatures + with some precipitation next week, ranging from 4\xB0C to 22\xB0C.\\n\\n#### + Trip Overview\\n\\n**Day 1: Arrival in Auckland**\\n- **10:00 AM:** Arrive + at Auckland Airport - Collect rental car.\\n- **12:00 PM:** Lunch at Depot + Eatery - Try local green-lipped mussels.\\n- **2:00 PM:** Visit Auckland War + Memorial Museum - Explore Maori culture.\\n- **4:00 PM:** Stroll in Auckland + Domain - Enjoy gardens and views.\\n- **6:00 PM:** Dinner at The Glass Goose + Bar \\u0026 Eatery.\\n- **Accommodation:** SkyCity Hotel, Auckland\\n\\n**Day + 2: Exploring Rotorua**\\n- **8:00 AM:** Drive to Rotorua (3 hours).\\n- **11:00 + AM:** Visit Te Puia - See geysers and Maori culture.\\n- **1:00 PM:** Lunch + at Puku Puku Caf\xE9 - Sample local dishes.\\n- **3:00 PM:** Relax in Polynesian + Spa - Enjoy geothermal pools.\\n- **6:00 PM:** Dinner at Eat Streat.\\n- **Accommodation:** + Regent of Rotorua\\n\\n**Day 3: Adventure in Taupo**\\n- **8:00 AM:** Drive + to Taupo (1 hour).\\n- **10:00 AM:** Visit Huka Falls.\\n- **12:00 PM:** Lunch + at The Boat Shed Caf\xE9.\\n- **2:00 PM:** Skydiving or Jet Boating - Book + in advance.\\n- **5:00 PM:** Relax at Taupo Lake Front.\\n- **Accommodation:** + Millennium Hotel Taupo\\n\\n**Day 4: Tongariro National Park**\\n- **7:00 + AM:** Drive to Tongariro (1 hour).\\n- **8:30 AM:** Begin Tongariro Alpine + Crossing - Full-day hike.\\n- **12:00 PM:** Lunch on the trail - Pack a picnic.\\n- + **4:00 PM:** Complete hike - Stunning views.\\n- **6:00 PM:** Dinner at a + local lodge.\\n- **Accommodation:** Chateau Tongariro Hotel\\n\\n**Day 5: + Wellington Culture Day**\\n- **8:00 AM:** Drive to Wellington (4 hours).\\n- + **12:00 PM:** Lunch at Fidel's Caf\xE9.\\n- **2:00 PM:** Visit Te Papa Tongarewa + Museum - Free entry.\\n- **4:00 PM:** Walk along Wellington Waterfront.\\n- + **6:00 PM:** Dinner at Ortega Fish Shack.\\n- **A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4339\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"846\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5185\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"IS6vpvXSyWc=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984005653000\",\"endTimeUnixNano\":\"1763041985613511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"936\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"959\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"brUFs0ciw1M=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041985613918000\",\"endTimeUnixNano\":\"1763041987102501000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Irx+5vAh2RA=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041987103912000\",\"endTimeUnixNano\":\"1763041990567857000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"801\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8D1wUHRUnJY=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568009000\",\"endTimeUnixNano\":\"1763041993540330000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Z0YMsVUAJiE=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568056000\",\"endTimeUnixNano\":\"1763041993540426000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"YOs61ryvpF4=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041993541968000\",\"endTimeUnixNano\":\"1763041995719255000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"876\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"84\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"960\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"4JCF5eBk2tQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719607000\",\"endTimeUnixNano\":\"1763041998146609000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ixR9+7Z/j1o=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719759000\",\"endTimeUnixNano\":\"1763041998146773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8mbS0moocyI=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041998148255000\",\"endTimeUnixNano\":\"1763041999477499000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2374\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"18\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2392\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ZXf5rcFUcLQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041999478441000\",\"endTimeUnixNano\":\"1763042000768653000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"1qbdTW8b/2E=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042000769229000\",\"endTimeUnixNano\":\"1763042004651429000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2545\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2687\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"NKOz3ltzNm0=\",\"parentSpanId\":\"r4Bxnys8Ajs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042005169975000\",\"endTimeUnixNano\":\"1763042043090298000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: nature, adventure, culture\\n- Weather: Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\n- Destination Info: New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It's known for varied topography and sharp mountain peaks, + including the Southern Alps. The capital city is Wellington, and its most + populous city is Auckland.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and nature, adventure, culture interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS3K2CF576d4YsisW6wGQEds7rmH\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2169\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1573\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"596\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Nature + \\u0026 Adventure in New Zealand: A Week of Wonders\\\",\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500 + - $2,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + rental car from the airport.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Depot Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Try + local favorites like the green-lipped mussels.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Domain + Drive, Auckland\\\",\\\"notes\\\":\\\"Explore Maori culture and New Zealand\u2019s + natural history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Stroll + in Auckland Domain\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Enjoy + the gardens and scenic views.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Outdoor + seating available.\\\"}],\\\"meals\\\":[\\\"Lunch at Depot Eatery\\\",\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + Rotorua\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Rotorua\\\",\\\"location\\\":\\\"Auckland to Rotorua (approx. 3 hours)\\\",\\\"notes\\\":\\\"Enjoy + scenic views along the way.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit + Te Puia\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"See geysers + and learn about Maori culture.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Puku Puku Caf\xE9\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Sample + local dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + in the Polynesian Spa\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Enjoy + geothermal pools.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Eat Streat\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Choose + from various food stalls.\\\"}],\\\"meals\\\":[\\\"Lunch at Puku Puku Caf\xE9\\\",\\\"Dinner + at Eat Streat\\\"],\\\"accommodation\\\":\\\"Regent of Rotorua\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Adventure + in Taupo\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Taupo\\\",\\\"location\\\":\\\"Rotorua to Taupo (approx. 1 hour)\\\",\\\"notes\\\":\\\"Stop + at Huk\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"056VGM+8Nok=\",\"parentSpanId\":\"brUFs0ciw1M=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041986115747000\",\"endTimeUnixNano\":\"1763041987094583000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"kvjaqj4KYrQ=\",\"parentSpanId\":\"8D1wUHRUnJY=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041991671179000\",\"endTimeUnixNano\":\"1763041992478589000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"u+rad2kmPnI=\",\"parentSpanId\":\"Z0YMsVUAJiE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041992480116000\",\"endTimeUnixNano\":\"1763041993538494000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ETHKBPTcA2s=\",\"parentSpanId\":\"4JCF5eBk2tQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041996225152000\",\"endTimeUnixNano\":\"1763041997195369000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"jQ6zmabmw2M=\",\"parentSpanId\":\"ixR9+7Z/j1o=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041997198300000\",\"endTimeUnixNano\":\"1763041998144145000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"0YqSiXc6Hig=\",\"parentSpanId\":\"ZXf5rcFUcLQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041999981250000\",\"endTimeUnixNano\":\"1763042000767913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '98254' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/eed63641fc3ffa3ea40a166e2604edd2 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"kDfoXagrNmk=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306563000\",\"endTimeUnixNano\":\"1763041981994302000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"5t6oCNV1x24=\",\"parentSpanId\":\"kDfoXagrNmk=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306752000\",\"endTimeUnixNano\":\"1763041981994217000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"CPDw9H+t3W0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041900556562000\",\"endTimeUnixNano\":\"1763041909681624000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are some great beach destinations for families in the Americas to consider:\\n\\n1. + **Barbados (Caribbean)**\\n - Language: English\\n - Currency: BBD\\n + \ - Known for its beautiful sandy beaches and vibrant culture.\\n\\n2. **Puerto + Rico (Caribbean)**\\n - Languages: English, Spanish\\n - Currency: USD\\n + \ - Offers lovely beaches, lush rainforests, and a rich cultural heritage.\\n\\n3. + **Turks and Caicos Islands (Caribbean)**\\n - Language: English\\n - Currency: + USD\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\n\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\n\\nI'll gather weather + information and details about Barbados and then create your itinerary.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"664\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"221\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"885\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"gjU8x51ljN8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909682975000\",\"endTimeUnixNano\":\"1763041912228857000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"saPJCTZOa8E=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909683354000\",\"endTimeUnixNano\":\"1763041912228748000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"v4pJsgk8eu8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041912233276000\",\"endTimeUnixNano\":\"1763041916478547000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1859\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"37\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1896\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vW7dC7113KM=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041916479365000\",\"endTimeUnixNano\":\"1763041923081358000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"S5LEq3ro4i0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041923083562000\",\"endTimeUnixNano\":\"1763041926952714000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2178\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"127\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2305\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"0revCekYick=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041926953355000\",\"endTimeUnixNano\":\"1763041968277636000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"awXbMZjA1IQ=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041968278645000\",\"endTimeUnixNano\":\"1763041981992200000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e284b4408193b787ece129274ff2\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Beach + Bliss in Barbados: A 7-Day Tropical Escape', destination='Barbados', duration_days=7, + total_budget_estimate='$1,500', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and Beach Day', activities=[DayActivity(time='12:00 PM', activity='Check-in + at hotel', location='Turtle Beach by Elegant Hotels', notes='Enjoy welcome + drinks and settle into your room.'), DayActivity(time='1:30 PM', activity='Lunch + at the hotel restaurant', location='Turtle Beach', notes='Try the grilled + fish with local spices.'), DayActivity(time='3:00 PM', activity='Relax at + Dover Beach', location='Dover Beach', notes='Beach chairs and umbrellas available + for rent.'), DayActivity(time='6:00 PM', activity='Sunset viewing', location='Dover + Beach', notes='Perfect spot for photos.'), DayActivity(time='7:30 PM', activity='Dinner + at The Oistins Fish Fry', location='Oistins', notes='A vibrant atmosphere + with fresh seafood.')], meals=['Lunch at Turtle Beach', 'Dinner at Oistins + Fish Fry'], accommodation='Turtle Beach by Elegant Hotels'), DayPlan(day_number=2, + date='2023-10-02', title='Explore Bridgetown', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at the hotel', location='Turtle Beach', notes='Buffet + style with local and international options.'), DayActivity(time='9:30 AM', + activity='Visit the Barbados Museum \\u0026 Historical Society', location='Bridgetown', + notes=\\\"Learn about the island's history.\\\"), DayActivity(time='12:00 + PM', activity='Lunch at Brown Sugar', location='Bridgetown', notes='Taste + local dishes in an outdoor setting.'), DayActivity(time='2:00 PM', activity='Explore + George Street and local shops', location='Bridgetown', notes='Pick up souvenirs + and local crafts.'), DayActivity(time='4:00 PM', activity='Relax at Pebbles + Beach', location='Pebbles Beach', notes='Enjoy swimming and sunbathing.'), + DayActivity(time='6:00 PM', activity='Dinner at The Cliff', location='St. + James', notes='Reservations recommend\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for your family vacation in Barbados, focusing + on beach activities and cultural experiences:\\n\\n### Trip Title: Beach Bliss + in Barbados: A 7-Day Tropical Escape\\n\\n#### **Day 1: Arrival and Beach + Day**\\n- **12:00 PM:** Check-in at Turtle Beach by Elegant Hotels. Enjoy + welcome drinks and settle in.\\n- **1:30 PM:** Lunch at the hotel restaurant. + Try the grilled fish with local spices.\\n- **3:00 PM:** Relax at Dover Beach. + Beach chairs and umbrellas available.\\n- **6:00 PM:** Enjoy a sunset viewing + at Dover Beach\u2014perfect for photos.\\n- **7:30 PM:** Dinner at The Oistins + Fish Fry. Vibrant atmosphere with fresh seafood.\\n\\n#### **Day 2: Explore + Bridgetown**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** + Visit the Barbados Museum \\u0026 Historical Society. Learn about the island's + history.\\n- **12:00 PM:** Lunch at Brown Sugar. Taste local dishes.\\n- **2:00 + PM:** Explore George Street and local shops for souvenirs.\\n- **4:00 PM:** + Relax at Pebbles Beach. Enjoy swimming and sunbathing.\\n- **6:00 PM:** Dinner + at The Cliff. Stunning ocean views, reservations recommended.\\n\\n#### **Day + 3: Catamaran Adventure**\\n- **7:30 AM:** Breakfast at Turtle Beach.\\n- **9:00 + AM:** Catamaran cruise from Bridgetown. Swim with turtles and snorkel at coral + reefs.\\n- **12:30 PM:** Lunch on board the catamaran.\\n- **3:00 PM:** Return + to the hotel, relax at the beach or pool.\\n- **7:00 PM:** Dinner at The Round + House in Bathsheba. Try local fish dishes.\\n\\n#### **Day 4: Beach Hopping**\\n- + **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** Visit Crane Beach. + Famous for its pink sand.\\n- **12:00 PM:** Lunch at The Crane Beach Resort.\\n- + **2:00 PM:** Head to Bottom Bay Beach. Less crowded and perfect for relaxation.\\n- + **5:00 PM:** Return to hotel.\\n- **7:30 PM:** Dinner at Naru Restaurant and + Lounge. Local and Asian fusion cuisine.\\n\\n#### **Day 5: Island Culture + and Relaxation**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **10:00 AM:** + Visit St. Nicholas Abbey. Tour the plantation and rum distillery.\\n- **1:00 + PM:** Lunch at the A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4121\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"842\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4963\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vSd7s42xrTw=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894311147000\",\"endTimeUnixNano\":\"1763041898739189000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"932\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"22\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"954\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"dkkP9YWRUaI=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041898739699000\",\"endTimeUnixNano\":\"1763041900553722000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"jB510DMs6/8=\",\"parentSpanId\":\"saPJCTZOa8E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910186602000\",\"endTimeUnixNano\":\"1763041910919083000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"I4smyApmv2I=\",\"parentSpanId\":\"gjU8x51ljN8=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910919911000\",\"endTimeUnixNano\":\"1763041912227844000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wsif3cTB5R0=\",\"parentSpanId\":\"vW7dC7113KM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041916984585000\",\"endTimeUnixNano\":\"1763041923078888000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"T263X02AHSc=\",\"parentSpanId\":\"dkkP9YWRUaI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041899242488000\",\"endTimeUnixNano\":\"1763041900545636000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wJnvML6OlKo=\",\"parentSpanId\":\"0revCekYick=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041927471141000\",\"endTimeUnixNano\":\"1763041968276800000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: beaches\\n- Weather: Current temperature 27.4\xB0C, mainly clear + conditions. Forecast: mostly warm weather with some rain expected later in + the week.\\n- Destination Info: Barbados is an island country in the Caribbean + located in the Atlantic Ocean. It is part of the Lesser Antilles of the West + Indies and the easternmost island of the Caribbean region. It lies on the + boundary of the South American and Caribbean plates. Its capital and largest + city is Bridgetown.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and beaches interests.\\nEach day should have 3-5 + activities with specific times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS25L4VnHyasIegXuwEirm30SBWf\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2288\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1717\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"571\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Beach + Bliss in Barbados: A 7-Day Tropical Escape\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Beach Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at hotel\\\",\\\"location\\\":\\\"Turtle Beach by Elegant Hotels\\\",\\\"notes\\\":\\\"Enjoy + welcome drinks and settle into your room.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Try + the grilled fish with local spices.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at Dover Beach\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Beach + chairs and umbrellas available for rent.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Sunset + viewing\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Perfect + spot for photos.\\\"},{\\\"time\\\":\\\"7:30 PM\\\",\\\"activity\\\":\\\"Dinner + at The Oistins Fish Fry\\\",\\\"location\\\":\\\"Oistins\\\",\\\"notes\\\":\\\"A + vibrant atmosphere with fresh seafood.\\\"}],\\\"meals\\\":[\\\"Lunch at Turtle + Beach\\\",\\\"Dinner at Oistins Fish Fry\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Explore + Bridgetown\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Buffet + style with local and international options.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + the Barbados Museum \\u0026 Historical Society\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Learn + about the island's history.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Brown Sugar\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Taste + local dishes in an outdoor setting.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + George Street and local shops\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Pick + up souvenirs and local crafts.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Relax + at Pebbles Beach\\\",\\\"location\\\":\\\"Pebbles Beach\\\",\\\"notes\\\":\\\"Enjoy + swimming and sunbathing.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Cliff\\\",\\\"location\\\":\\\"St. James\\\",\\\"notes\\\":\\\"Reservations + recommended for stunning ocean views.\\\"}],\\\"meals\\\":[\\\"Breakfast at + Turtle Beach\\\",\\\"Lunch at Brown Sugar\\\",\\\"Dinner at The Cliff\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '79035' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_attribute_filter.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_attribute_filter.yaml new file mode 100644 index 0000000..1e817b6 --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_attribute_filter.yaml @@ -0,0 +1,5248 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B+span.gen_ai.system+%21%3D+nil+%7D&limit=10 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai"}}]}],"matched":16},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai"}}]}],"matched":16}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai"}}]}],"matched":20},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai"}}]}],"matched":20}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}},{"traceID":"b37b4c7727a54482f8c71cb88799c108","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042214208334000","durationMs":74124,"spanSet":{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai"}}]}],"matched":14},"spanSets":[{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai"}}]}],"matched":14}],"serviceStats":{"travel-agent-demo2":{"spanCount":18}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai"}}]},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai"}}]},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]}],"matched":7},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai"}}]},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai"}}]},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]}],"matched":7}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai"}}]}],"matched":20},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai"}}]}],"matched":20}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]}],"matched":16},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]}],"matched":16}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai"}}]}],"matched":13},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}}]},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000","attributes":[{"key":"gen_ai.system","value":{"stringValue":"openai"}}]}],"matched":13}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"123620","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Vary: + - Accept-Encoding + content-length: + - '9779' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/bec9c8df1c3a22a134e4c9c7aa0f0ce3 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"htO31/xjQN0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458122243000\",\"endTimeUnixNano\":\"1763042536895402000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"0hFkYEm0pAA=\",\"parentSpanId\":\"htO31/xjQN0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458123662000\",\"endTimeUnixNano\":\"1763042536895316000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"FSS1aMtuo4g=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042521888311000\",\"endTimeUnixNano\":\"1763042536893685000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4ab7f848195ada04713bd68e3dc\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Exploring + the Wonders of New Zealand', destination='New Zealand', duration_days=7, total_budget_estimate='$1,500', + daily_plans=[DayPlan(day_number=1, date='2023-10-01', title='Arrival in Auckland', + activities=[DayActivity(time='09:00 AM', activity='Arrive at Auckland Airport', + location='Auckland Airport', notes='Collect your rental car for the week.'), + DayActivity(time='10:00 AM', activity='Check into Accommodation', location='SkyCity + Hotel', notes='Located in the city center, convenient for exploring.'), DayActivity(time='11:30 + AM', activity='Visit Auckland War Memorial Museum', location='Auckland Domain', + notes='Explore New Zealand\u2019s cultural heritage and natural history.'), + DayActivity(time='02:00 PM', activity='Lunch at Tom Tom Bar \\u0026 Eatery', + location='SkyCity', notes='Enjoy a relaxing meal with views of the city.'), + DayActivity(time='03:30 PM', activity='Walk around Viaduct Harbour', location='Viaduct + Harbour', notes='Stroll along the waterfront and enjoy the vibrant atmosphere.'), + DayActivity(time='06:30 PM', activity='Dinner at Depot Eatery', location='Federal + Street, Auckland', notes='Experience local New Zealand cuisine.')], meals=['Lunch + at Tom Tom Bar \\u0026 Eatery', 'Dinner at Depot Eatery'], accommodation='SkyCity + Hotel, Auckland'), DayPlan(day_number=2, date='2023-10-02', title='Exploring + the Bay of Islands', activities=[DayActivity(time='07:00 AM', activity='Drive + to Bay of Islands', location='Bay of Islands', notes='Approx. 3 hours drive, + enjoy scenic views on the way.'), DayActivity(time='10:30 AM', activity='Take + a Bay of Islands Cruise', location='Paihia Wharf', notes='Explore the stunning + islands and spot marine wildlife.'), DayActivity(time='01:00 PM', activity='Lunch + at The Gables Restaurant', location='Russell', notes='Try fresh seafood and + local dishes.'), DayActivity(time='03:00 PM', activity='Visit Waitangi Treaty + Grounds', location='Waitangi', notes=\\\"Learn about New Zealand's history + an\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for a romantic cultural vacation in New Zealand, + tailored to your interests:\\n\\n### Exploring the Wonders of New Zealand\\n\\n#### + **Day 1: Arrival in Auckland**\\n- **Morning**\\n - Arrive at Auckland Airport\\n + \ - Check into SkyCity Hotel, centrally located for easy exploration.\\n- + **Afternoon**\\n - Visit Auckland War Memorial Museum: Delve into New Zealand\u2019s + cultural heritage.\\n - Lunch at Tom Tom Bar \\u0026 Eatery: Enjoy city views.\\n- + **Evening**\\n - Walk around Viaduct Harbour: Vibrant waterfront stroll.\\n + \ - Dinner at Depot Eatery: Experience local cuisine.\\n\\n#### **Day 2: Exploring + the Bay of Islands**\\n- **Morning**\\n - Drive to Bay of Islands: Scenic + 3-hour journey.\\n - Take a Bay of Islands Cruise: Explore islands and marine + wildlife.\\n- **Afternoon**\\n - Lunch at The Gables Restaurant: Fresh local + seafood.\\n - Visit Waitangi Treaty Grounds: Learn about New Zealand's history.\\n- + **Evening**\\n - Return to Auckland.\\n - Dinner at The Glasshouse.\\n\\n#### + **Day 3: Wellington - The Capital**\\n- **Morning**\\n - Drive to Wellington: + Enjoy the scenic route.\\n- **Afternoon**\\n - Lunch at The Boatshed Cafe.\\n + \ - Visit Te Papa Tongarewa (Museum of New Zealand): Explore national history.\\n- + **Evening**\\n - Cable Car Ride to Kelburn: City views.\\n - Dinner at Logan + Brown: Fine dining.\\n\\n#### **Day 4: Nature and Culture in Wellington**\\n- + **Morning**\\n - Wellington Botanic Garden: Peaceful morning walk.\\n - + Explore Zealandia Ecosanctuary: Discover unique wildlife.\\n- **Afternoon**\\n + \ - Lunch at The Ramen Shop.\\n - Visit the National Portrait Gallery.\\n- + **Evening**\\n - Dinner at The Old Bailey.\\n\\n#### **Day 5: Travel to Queenstown**\\n- + **Early Morning**\\n - Fly from Wellington to Queenstown.\\n- **Morning**\\n + \ - Check into Center City Apartments.\\n - Skyline Gondola Ride: Panoramic + views.\\n- **Afternoon**\\n - Lunch at Stratosfare Restaurant: Mountain views.\\n + \ - Explore Queenstown Gardens.\\n- **Evening**\\n - Jet Boating on Lake + Wakatipu.\\n - Dinner at Fergburger.\\n\\n#### **Day 6: Adventure in Queenstown**\\n- + **Morning**\\n - \"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4669\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"694\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5363\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]}]},{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"SZQWdqnT86M=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458125576000\",\"endTimeUnixNano\":\"1763042460061974000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"933\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"956\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"LhJKSMoSSOA=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042460062781000\",\"endTimeUnixNano\":\"1763042461638134000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"j4A8EPQuGCg=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042461639066000\",\"endTimeUnixNano\":\"1763042463839211000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"800\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"850\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ULgV+UrP/qI=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463839867000\",\"endTimeUnixNano\":\"1763042466936364000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"rU40hFuwoTM=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463840073000\",\"endTimeUnixNano\":\"1763042466936520000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"t17Kam4h9+E=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466938646000\",\"endTimeUnixNano\":\"1763042470405151000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.completion.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.3.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"437\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"116\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"553\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"7g4u8KYJLAU=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406246000\",\"endTimeUnixNano\":\"1763042474022207000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"yCwOkiG7rZ4=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406582000\",\"endTimeUnixNano\":\"1763042474022257000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"suvbAlwFQxE=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406864000\",\"endTimeUnixNano\":\"1763042474022284000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"kK2HJo7iF1s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470407130000\",\"endTimeUnixNano\":\"1763042474022309000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"hqoFE9rpZHw=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042474023255000\",\"endTimeUnixNano\":\"1763042479037529000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2709\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"3q+1aP5st6s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042479037941000\",\"endTimeUnixNano\":\"1763042521886451000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xp8+s75qaoQ=\",\"parentSpanId\":\"LhJKSMoSSOA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042460566475000\",\"endTimeUnixNano\":\"1763042461631027000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xTNGMbJ8o4w=\",\"parentSpanId\":\"ULgV+UrP/qI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042464944178000\",\"endTimeUnixNano\":\"1763042466058265000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"cp8E6e04/1g=\",\"parentSpanId\":\"rU40hFuwoTM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466061655000\",\"endTimeUnixNano\":\"1763042466934165000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"vHsnrxC0dGw=\",\"parentSpanId\":\"7g4u8KYJLAU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042470916507000\",\"endTimeUnixNano\":\"1763042471857859000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"wieBZmgqMfE=\",\"parentSpanId\":\"yCwOkiG7rZ4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042471863066000\",\"endTimeUnixNano\":\"1763042472795187000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"KvPdWQGWzrM=\",\"parentSpanId\":\"suvbAlwFQxE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042472796856000\",\"endTimeUnixNano\":\"1763042473492982000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"YDcPBs0N6BQ=\",\"parentSpanId\":\"kK2HJo7iF1s=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042473499558000\",\"endTimeUnixNano\":\"1763042474021224000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Australia\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ZxRbtS6dkJI=\",\"parentSpanId\":\"3q+1aP5st6s=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042479555737000\",\"endTimeUnixNano\":\"1763042521884511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: culture, nature\\n- Weather: Current temperature is 7.5\xB0C and + overcast. Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected + on certain days.\\n- Destination Info: New Zealand is an island country in + the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the moderate budget level and culture, + nature interests.\\nEach day should have 3-5 activities with specific times, + locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbSAyeprdNroIr4yr884B5SquCIU0\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2320\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1726\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"594\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Exploring + the Wonders of New Zealand\\\",\\\"destination\\\":\\\"New Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + your rental car for the week.\\\"},{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into Accommodation\\\",\\\"location\\\":\\\"SkyCity Hotel\\\",\\\"notes\\\":\\\"Located + in the city center, convenient for exploring.\\\"},{\\\"time\\\":\\\"11:30 + AM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Auckland + Domain\\\",\\\"notes\\\":\\\"Explore New Zealand\u2019s cultural heritage + and natural history.\\\"},{\\\"time\\\":\\\"02:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"SkyCity\\\",\\\"notes\\\":\\\"Enjoy + a relaxing meal with views of the city.\\\"},{\\\"time\\\":\\\"03:30 PM\\\",\\\"activity\\\":\\\"Walk + around Viaduct Harbour\\\",\\\"location\\\":\\\"Viaduct Harbour\\\",\\\"notes\\\":\\\"Stroll + along the waterfront and enjoy the vibrant atmosphere.\\\"},{\\\"time\\\":\\\"06:30 + PM\\\",\\\"activity\\\":\\\"Dinner at Depot Eatery\\\",\\\"location\\\":\\\"Federal + Street, Auckland\\\",\\\"notes\\\":\\\"Experience local New Zealand cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"Dinner at Depot Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + the Bay of Islands\\\",\\\"activities\\\":[{\\\"time\\\":\\\"07:00 AM\\\",\\\"activity\\\":\\\"Drive + to Bay of Islands\\\",\\\"location\\\":\\\"Bay of Islands\\\",\\\"notes\\\":\\\"Approx. + 3 hours drive, enjoy scenic views on the way.\\\"},{\\\"time\\\":\\\"10:30 + AM\\\",\\\"activity\\\":\\\"Take a Bay of Islands Cruise\\\",\\\"location\\\":\\\"Paihia + Wharf\\\",\\\"notes\\\":\\\"Explore the stunning islands and spot marine wildlife.\\\"},{\\\"time\\\":\\\"01:00 + PM\\\",\\\"activity\\\":\\\"Lunch at The Gables Restaurant\\\",\\\"location\\\":\\\"Russell\\\",\\\"notes\\\":\\\"Try + fresh seafood and local dishes.\\\"},{\\\"time\\\":\\\"03:00 PM\\\",\\\"activity\\\":\\\"Visit + Waitangi Treaty Grounds\\\",\\\"location\\\":\\\"Waitangi\\\",\\\"notes\\\":\\\"Learn + about New Zealand's history and culture.\\\"},{\\\"time\\\":\\\"05:30 PM\\\",\\\"activity\\\":\\\"Return + to Auckland\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Relax + in the car or stop for coffee on the way.\\\"},{\\\"time\\\":\\\"07:3\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '89149' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/6ce0a0129015a826c7f54b78275cfe37 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"QM3dFI3l52g=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290335056000\",\"endTimeUnixNano\":\"1763042456116415000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"3iOop76o3Sw=\",\"parentSpanId\":\"QM3dFI3l52g=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290336958000\",\"endTimeUnixNano\":\"1763042456116320000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"BGNWa2Lx+H4=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290337931000\",\"endTimeUnixNano\":\"1763042291996182000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"58\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"523\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bpkI8o2juJI=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042291997852000\",\"endTimeUnixNano\":\"1763042294883864000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"FWUQD7dWK24=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042291998533000\",\"endTimeUnixNano\":\"1763042294884045000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"JxMUY8xtBSU=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042294885529000\",\"endTimeUnixNano\":\"1763042317534957000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"For + an adventurous trip, I've selected two destinations known for thrilling experiences: + **Chile** in South America and **Tajikistan** in Central Asia. Let's explore + these destinations further to plan your exciting itinerary.\\n\\n### Chile\\n- + **Capital**: Santiago\\n- **Language**: Spanish\\n- **Currency**: Chilean + Peso (CLP)\\n- **Time Zone**: UTC-06:00 to UTC-04:00\\n\\n### Tajikistan\\n- + **Capital**: Dushanbe\\n- **Language**: Tajik, Russian\\n- **Currency**: Tajikistani + Somoni (TJS)\\n- **Time Zone**: UTC+05:00\\n\\nI'll gather the weather information + and then craft a detailed itinerary for you.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"945\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"213\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1158\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"OnwfJc+G7eA=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042317535695000\",\"endTimeUnixNano\":\"1763042321467468000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"zVBafqJLSVU=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042317535898000\",\"endTimeUnixNano\":\"1763042321467528000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"t+rxwgGXbbg=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042321470042000\",\"endTimeUnixNano\":\"1763042324279616000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1194\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"92\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1286\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"cOiJesC5V+c=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042324280282000\",\"endTimeUnixNano\":\"1763042326821781000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"VHh495GUkl0=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042324280617000\",\"endTimeUnixNano\":\"1763042326822084000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"QcXOYcnb1as=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042326824312000\",\"endTimeUnixNano\":\"1763042328899504000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1518\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"58\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1576\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"q9X9jhj0kbo=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042328900052000\",\"endTimeUnixNano\":\"1763042332069522000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bKmi3eZoF9E=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042328900188000\",\"endTimeUnixNano\":\"1763042332069569000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"pQWL2XkRjNE=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042332070368000\",\"endTimeUnixNano\":\"1763042337546943000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418af3c8190b5314c9f212bff34\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418cdf8819087ab8a397842e1ba\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Santiago, Chile' info=DestinationInfo(title='Santiago', + summary='Capital and largest city of Chile', extract=\\\"Santiago, also known + as Santiago de Chile, is the capital and largest city of Chile and one of + the largest cities in the Americas. Located in the Chilean Central Valley, + it anchors its namesake Santiago Metropolitan Region representing 40% of Chile's + total population. Most of the city is situated between 500\u2013650\\\\xa0m + (1,640\u20132,133\\\\xa0ft) above sea level.\\\")\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.17.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Dushanbe, Tajikistan' info=DestinationInfo(title='Dushanbe', + summary='Capital and largest city of Tajikistan', extract='Dushanbe is the + capital and largest city of Tajikistan. As of February\\\\xa02023, Dushanbe + had a population of 1,228,400, with this population being largely Tajik. Until + 1929, the city was known in Russian as Dyushambe, and from 1929 to 1961 as + Stalinabad, after Joseph Stalin. Dushanbe is located in the Gissar Valley, + bounded by the Gissar Range in the north and east and the Babatag, Aktau, + Rangontau and Karatau mountains in the south, and has an elevation of 750\u2013930 + m. The city is divided into four districts: Ismail Samani, Avicenna, Ferdowsi, + and Shah Mansur.')\"}},{\"key\":\"gen_ai.prompt.17.tool_call_id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Santiago, + Chile\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 24\xB0C with partly cloudy conditions. Upcoming days will be + mostly clear with temperatures ranging from 26\xB0C to 34\xB0C.\\\",\\\"destination_details\\\":\\\"Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_VD4AdDcXmJyed5FWcjWG7Ikt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\\",\\\"destination_details\\\":\\\"Dushanbe + is the capital and largest city of Tajikistan. It is located in the Gissar + Valley, bounded by mountainous terrains, and has a population of over 1 million + people.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_lid7TRD6rOxaEhIq6ISjqGG2\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1702\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"288\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1990\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"/iqJRoiO3Hs=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042337548317000\",\"endTimeUnixNano\":\"1763042433336198000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"dQSecaXxjXM=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042337548704000\",\"endTimeUnixNano\":\"1763042433336329000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"Gic8k6ZyUjM=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042433338440000\",\"endTimeUnixNano\":\"1763042456109947000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418af3c8190b5314c9f212bff34\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418cdf8819087ab8a397842e1ba\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Santiago, Chile' info=DestinationInfo(title='Santiago', + summary='Capital and largest city of Chile', extract=\\\"Santiago, also known + as Santiago de Chile, is the capital and largest city of Chile and one of + the largest cities in the Americas. Located in the Chilean Central Valley, + it anchors its namesake Santiago Metropolitan Region representing 40% of Chile's + total population. Most of the city is situated between 500\u2013650\\\\xa0m + (1,640\u20132,133\\\\xa0ft) above sea level.\\\")\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.17.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Dushanbe, Tajikistan' info=DestinationInfo(title='Dushanbe', + summary='Capital and largest city of Tajikistan', extract='Dushanbe is the + capital and largest city of Tajikistan. As of February\\\\xa02023, Dushanbe + had a population of 1,228,400, with this population being largely Tajik. Until + 1929, the city was known in Russian as Dyushambe, and from 1929 to 1961 as + Stalinabad, after Joseph Stalin. Dushanbe is located in the Gissar Valley, + bounded by the Gissar Range in the north and east and the Babatag, Aktau, + Rangontau and Karatau mountains in the south, and has an elevation of 750\u2013930 + m. The city is divided into four districts: Ismail Samani, Avicenna, Ferdowsi, + and Shah Mansur.')\"}},{\"key\":\"gen_ai.prompt.17.tool_call_id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e41d98b08190a0e7d230b49ad8ac\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Santiago, + Chile\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 24\xB0C with partly cloudy conditions. Upcoming days will be + mostly clear with temperatures ranging from 26\xB0C to 34\xB0C.\\\",\\\"destination_details\\\":\\\"Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e41fb6448190bca146180572c7a7\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\\",\\\"destination_details\\\":\\\"Dushanbe + is the capital and largest city of Tajikistan. It is located in the Gissar + Valley, bounded by mountainous terrains, and has a population of over 1 million + people.\\\"}\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Santiago, Chile' itinerary=TravelItinerary(trip_title='Adventurous + Santiago: A 7-Day Exploration', destination='Santiago, Chile', duration_days=7, + total_budget_estimate='$800-$1000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Santiago', activities=[DayActivity(time='10:00 AM', activity='Arrive + at Santiago International Airport', location='Santiago International Airport', + notes='Pick up rental car or take a taxi to the accommodation.'), DayActivity(time='11:30 + AM', activity='Check-in to accommodation', location='Hotel Plaza El Bosque', + notes='Moderate budget, centrally located.'), DayActivity(time='1:00 PM', + activity='Lunch at Liguria', location='Liguria Restaurant', notes='Try the + local seafood dishes.'), DayActivity(time='3:00 PM', activity='Walk around + Plaza de Armas', location='Plaza de Armas', notes='Explore the historic heart + of Santiago.'), DayActivity(time='5:00 PM', activity='Visit Cerro Santa Lucia', + location='Cerro Santa Lucia', notes='Enjoy panoramic views of the city.')], + meals=['Lunch at Liguria', 'Dinner at La Piojera'], accommodation='Hotel Plaza + El Bosque'), DayPlan(day_number=2, date='2023-10-02', title='Cajon del Maipo + Adventure', activities=[DayActivity(time='8:00 AM', activity='Breakfast at + the hotel', location='Hotel Plaza El Bosque', notes='Enjoy a hearty breakfast.'), + DayActivity(time='9:00 AM', activity='Depart for Cajon del Maipo', location='Cajon + del Maipo', notes='A beautiful area for outdoor activities.'), DayActivity(time='10:30 + AM', activity='Hiking in the El Morado National Monument', location='El Morado', + notes='Moderate hike with stunning views.'), DayActivity(time='1:00 PM', activity='Picnic + lunch in nature', location='El Morado', notes='Pack a lunch to enjoy in the + outdoors.'), DayActivity(time='3:00 PM', activity='Visit Embalse El Yeso', + location='Embalse El Yeso', notes='Take photos and enjoy the scenery.'), DayActivity(time='5:00 + PM', activity='Return to Santiago', location='Santiago', notes='R\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_VD4AdDcXmJyed5FWcjWG7Ikt\"}},{\"key\":\"gen_ai.prompt.21.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.21.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Dushanbe, Tajikistan' itinerary=TravelItinerary(trip_title='Adventure + Awaits in Dushanbe', destination='Dushanbe, Tajikistan', duration_days=7, + total_budget_estimate='$700', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and City Exploration', activities=[DayActivity(time='09:00 + AM', activity='Arrive in Dushanbe', location='Dushanbe International Airport', + notes='Transfer to hotel via taxi or arranged pickup.'), DayActivity(time='10:30 + AM', activity='Check-in and freshen up', location='Hotel Atlas Dushanbe', + notes='Moderate hotel with good reviews.'), DayActivity(time='12:00 PM', activity='Lunch + at Restaurant Shodlik', location='Shodlik Restaurant', notes='Try local dishes + like Plov and Shashlik.'), DayActivity(time='01:30 PM', activity='Visit the + National Museum of Tajikistan', location='Dushanbe', notes='Explore Tajik + history and culture.'), DayActivity(time='03:30 PM', activity='Walk around + Rudaki Park', location='Rudaki Park', notes='Enjoy the greenery and relax.'), + DayActivity(time='06:00 PM', activity='Dinner at Restaurant Dushanbe', location='Restaurant + Dushanbe', notes='Known for traditional Tajik cuisine.')], meals=['Lunch at + Shodlik', 'Dinner at Restaurant Dushanbe'], accommodation='Hotel Atlas Dushanbe'), + DayPlan(day_number=2, date='2023-10-02', title='Adventure in the Mountains', + activities=[DayActivity(time='08:00 AM', activity='Breakfast at the hotel', + location='Hotel Atlas Dushanbe', notes='Start your day with a hearty breakfast.'), + DayActivity(time='09:00 AM', activity='Day trip to Fann Mountains', location='Fann + Mountains', notes='Hire a local guide for an adventure hike.'), DayActivity(time='12:30 + PM', activity='Picnic lunch at Alaudin Lakes', location='Alaudin Lakes', notes='Pack + lunch from the hotel.'), DayActivity(time='02:00 PM', activity='Hiking around + the lakes', location='Alaudin Lakes', notes='Enjoy stunning views and take + photos.'), DayActivity(time='05:00 PM', activity='Return to Dushanbe', location='Dushanbe',\"}},{\"key\":\"gen_ai.prompt.21.tool_call_id\",\"value\":{\"stringValue\":\"call_lid7TRD6rOxaEhIq6ISjqGG2\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are two thrilling itineraries tailor-made for your adventurous spirit. You + can choose between Santiago, Chile, known for its vibrant city life and stunning + natural landscapes, or Dushanbe, Tajikistan, offering untouched natural beauty + and rich cultural experiences.\\n\\n### Santiago, Chile: Adventurous Exploration + (7 Days)\\n**Highlights:**\\n- Explore vibrant city life in Santiago, including + cultural sites like Plaza de Armas and Cerro Santa Lucia.\\n- Experience the + thrill of hiking in Cajon del Maipo and El Morado National Monument.\\n- Enjoy + a day trip to colorful Valparaiso.\\n- Taste Chilean wines on a Maipo Valley + wine tour.\\n- Adventure in the Andes Mountains with skiing or hiking.\\n\\n**Estimated + Budget:** $800-$1000\\n\\n**Travel Tips:** Learn some basic Spanish phrases, + and always carry water for outdoor activities.\\n\\n**Packing Suggestions:** + Lightweight clothing, comfortable hiking shoes, and sun protection.\\n\\n### + Dushanbe, Tajikistan: Adventure in Nature (7 Days)\\n**Highlights:**\\n- Discover + Dushanbe's cultural sites, including the National Museum and Rudaki Park.\\n- + Embark on an adventurous day in the Fann Mountains with hiking and exploring + the Alaudin Lakes.\\n- Enjoy rafting and hiking in Varzob Valley.\\n- Trek + in the majestic Pamir Mountains to Lake Sarez.\\n\\n**Estimated Budget:** + $700\\n\\n**Travel Tips:** Learn basic Tajik phrases, carry cash, and respect + local traditions.\\n\\n**Packing Suggestions:** Lightweight, layered clothing, + comfortable hiking shoes, and sunscreen.\\n\\nBoth itineraries promise adventure + and memorable experiences. Let me know if you have any preferences or need + further assistance!\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"7540\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"333\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7873\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"flp6zhR87z8=\",\"parentSpanId\":\"bpkI8o2juJI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042292502514000\",\"endTimeUnixNano\":\"1763042293711707000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Asia\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"8pVEfcKzjl0=\",\"parentSpanId\":\"FWUQD7dWK24=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042293718002000\",\"endTimeUnixNano\":\"1763042294872800000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"r7fWWieyOBU=\",\"parentSpanId\":\"OnwfJc+G7eA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042318640277000\",\"endTimeUnixNano\":\"1763042320464533000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Santiago%2C+Chile\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"HtDo/cYr/Zg=\",\"parentSpanId\":\"zVBafqJLSVU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042320470625000\",\"endTimeUnixNano\":\"1763042321464327000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Dushanbe%2C+Tajikistan\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"Vk5JbW85DaI=\",\"parentSpanId\":\"cOiJesC5V+c=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042324782420000\",\"endTimeUnixNano\":\"1763042325888098000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-33.4377756\\u0026longitude=-70.6504502\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bvgm7G6N5UQ=\",\"parentSpanId\":\"VHh495GUkl0=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042325892104000\",\"endTimeUnixNano\":\"1763042326819385000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=38.5856814\\u0026longitude=68.760331\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"k4ESLnjIntM=\",\"parentSpanId\":\"q9X9jhj0kbo=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042329402505000\",\"endTimeUnixNano\":\"1763042329932028000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Santiago,%20Chile\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"OPn/NLRb7OU=\",\"parentSpanId\":\"bKmi3eZoF9E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042329932776000\",\"endTimeUnixNano\":\"1763042332067863000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Dushanbe,%20Tajikistan\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"7BjV1KWqCGg=\",\"parentSpanId\":\"/iqJRoiO3Hs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042338068561000\",\"endTimeUnixNano\":\"1763042378358074000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Santiago, + Chile.\\n\\nTrip Details:\\n- Destination: Santiago, Chile\\n- Duration: 7 + days\\n- Budget: moderate\\n- Interests: adventure\\n- Weather: Current temperature + is 24\xB0C with partly cloudy conditions. Upcoming days will be mostly clear + with temperatures ranging from 26\xB0C to 34\xB0C.\\n- Destination Info: Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and adventure interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS8gIwmKuNXg8IbIbSADLWloOWdb\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2336\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1737\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"599\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Adventurous + Santiago: A 7-Day Exploration\\\",\\\"destination\\\":\\\"Santiago, Chile\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$800-$1000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Santiago\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Santiago International Airport\\\",\\\"location\\\":\\\"Santiago International + Airport\\\",\\\"notes\\\":\\\"Pick up rental car or take a taxi to the accommodation.\\\"},{\\\"time\\\":\\\"11:30 + AM\\\",\\\"activity\\\":\\\"Check-in to accommodation\\\",\\\"location\\\":\\\"Hotel + Plaza El Bosque\\\",\\\"notes\\\":\\\"Moderate budget, centrally located.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Liguria\\\",\\\"location\\\":\\\"Liguria + Restaurant\\\",\\\"notes\\\":\\\"Try the local seafood dishes.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Walk around Plaza de Armas\\\",\\\"location\\\":\\\"Plaza + de Armas\\\",\\\"notes\\\":\\\"Explore the historic heart of Santiago.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Visit Cerro Santa Lucia\\\",\\\"location\\\":\\\"Cerro + Santa Lucia\\\",\\\"notes\\\":\\\"Enjoy panoramic views of the city.\\\"}],\\\"meals\\\":[\\\"Lunch + at Liguria\\\",\\\"Dinner at La Piojera\\\"],\\\"accommodation\\\":\\\"Hotel + Plaza El Bosque\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Cajon + del Maipo Adventure\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Hotel Plaza El Bosque\\\",\\\"notes\\\":\\\"Enjoy + a hearty breakfast.\\\"},{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Depart + for Cajon del Maipo\\\",\\\"location\\\":\\\"Cajon del Maipo\\\",\\\"notes\\\":\\\"A + beautiful area for outdoor activities.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Hiking + in the El Morado National Monument\\\",\\\"location\\\":\\\"El Morado\\\",\\\"notes\\\":\\\"Moderate + hike with stunning views.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Picnic + lunch in nature\\\",\\\"location\\\":\\\"El Morado\\\",\\\"notes\\\":\\\"Pack + a lunch to enjoy in the outdoors.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + Embalse El Yeso\\\",\\\"location\\\":\\\"Embalse El Yeso\\\",\\\"notes\\\":\\\"Take + photos and enjoy the scenery.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to Santiago\\\",\\\"location\\\":\\\"Santiago\\\",\\\"notes\\\":\\\"Relax + after a day of adventure.\\\"}],\\\"meals\\\":[\\\"Breakfast at the hotel\\\",\\\"Picnic + lunch\\\",\\\"Dinner at Los Buenos Muchachos\\\"],\\\"accommodation\\\":\\\"Hotel + Plaza El Bosque\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"cioloVIWits=\",\"parentSpanId\":\"dQSecaXxjXM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042378370827000\",\"endTimeUnixNano\":\"1763042433334128000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Dushanbe, + Tajikistan.\\n\\nTrip Details:\\n- Destination: Dushanbe, Tajikistan\\n- Duration: + 7 days\\n- Budget: moderate\\n- Interests: adventure\\n- Weather: Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\n- + Destination Info: Dushanbe is the capital and largest city of Tajikistan. + It is located in the Gissar Valley, bounded by mountainous terrains, and has + a population of over 1 million people.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and adventure interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS9Lz3AjDms2dEht5anB36agIYPs\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2499\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1923\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"576\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Adventure + Awaits in Dushanbe\\\",\\\"destination\\\":\\\"Dushanbe, Tajikistan\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$700\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and City Exploration\\\",\\\"activities\\\":[{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Dushanbe\\\",\\\"location\\\":\\\"Dushanbe International Airport\\\",\\\"notes\\\":\\\"Transfer + to hotel via taxi or arranged pickup.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Check-in + and freshen up\\\",\\\"location\\\":\\\"Hotel Atlas Dushanbe\\\",\\\"notes\\\":\\\"Moderate + hotel with good reviews.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Restaurant Shodlik\\\",\\\"location\\\":\\\"Shodlik Restaurant\\\",\\\"notes\\\":\\\"Try + local dishes like Plov and Shashlik.\\\"},{\\\"time\\\":\\\"01:30 PM\\\",\\\"activity\\\":\\\"Visit + the National Museum of Tajikistan\\\",\\\"location\\\":\\\"Dushanbe\\\",\\\"notes\\\":\\\"Explore + Tajik history and culture.\\\"},{\\\"time\\\":\\\"03:30 PM\\\",\\\"activity\\\":\\\"Walk + around Rudaki Park\\\",\\\"location\\\":\\\"Rudaki Park\\\",\\\"notes\\\":\\\"Enjoy + the greenery and relax.\\\"},{\\\"time\\\":\\\"06:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Restaurant Dushanbe\\\",\\\"location\\\":\\\"Restaurant Dushanbe\\\",\\\"notes\\\":\\\"Known + for traditional Tajik cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Shodlik\\\",\\\"Dinner + at Restaurant Dushanbe\\\"],\\\"accommodation\\\":\\\"Hotel Atlas Dushanbe\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Adventure + in the Mountains\\\",\\\"activities\\\":[{\\\"time\\\":\\\"08:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Hotel Atlas Dushanbe\\\",\\\"notes\\\":\\\"Start + your day with a hearty breakfast.\\\"},{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Day + trip to Fann Mountains\\\",\\\"location\\\":\\\"Fann Mountains\\\",\\\"notes\\\":\\\"Hire + a local guide for an adventure hike.\\\"},{\\\"time\\\":\\\"12:30 PM\\\",\\\"activity\\\":\\\"Picnic + lunch at Alaudin Lakes\\\",\\\"location\\\":\\\"Alaudin Lakes\\\",\\\"notes\\\":\\\"Pack + lunch from the hotel.\\\"},{\\\"time\\\":\\\"02:00 PM\\\",\\\"activity\\\":\\\"Hiking + around the lakes\\\",\\\"location\\\":\\\"Alaudin Lakes\\\",\\\"notes\\\":\\\"Enjoy + stunning views and take photos.\\\"},{\\\"time\\\":\\\"05:00 PM\\\",\\\"activity\\\":\\\"Return + to Dushanbe\\\",\\\"location\\\":\\\"Dushanbe\\\",\\\"notes\\\":\\\"Relax + after an adventurous day.\\\"},{\\\"time\\\":\\\"07:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Kebab House\\\",\\\"location\\\":\\\"Kebab House\\\",\\\"notes\\\":\\\"Savor + delicious kebabs and local drinks.\\\"}],\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '133017' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/b37b4c7727a54482f8c71cb88799c108 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"X6XgDzvu2/o=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214208334000\",\"endTimeUnixNano\":\"1763042288332434000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ykfIkleyfn8=\",\"parentSpanId\":\"X6XgDzvu2/o=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214208605000\",\"endTimeUnixNano\":\"1763042288332353000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"JhAH0yZx3Ik=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214215610000\",\"endTimeUnixNano\":\"1763042217450079000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"928\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"21\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"949\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"7Pd25D1LOvw=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042217450618000\",\"endTimeUnixNano\":\"1763042219069521000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"Un2+PGYQ9to=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042219072031000\",\"endTimeUnixNano\":\"1763042221139663000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1456\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"19\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1475\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"IbK2qPHFUEU=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042221140625000\",\"endTimeUnixNano\":\"1763042223209324000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"f1ybKu8yoWY=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042223210273000\",\"endTimeUnixNano\":\"1763042226350110000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1544\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"36\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1580\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"Mix/K/BkE/k=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042226350768000\",\"endTimeUnixNano\":\"1763042227769106000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ZIkq2QIEfJc=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042227770300000\",\"endTimeUnixNano\":\"1763042229857312000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1862\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"19\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1881\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"th//dB4A1jI=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042229857982000\",\"endTimeUnixNano\":\"1763042230935832000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"rnS972TaPFE=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042230937025000\",\"endTimeUnixNano\":\"1763042234891211000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b5b6d48194ac4ff233dc086dc6\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Bratislava' info=DestinationInfo(title='Bratislava', + summary='Capital and largest city of Slovakia', extract='Bratislava is the + capital and largest city of the Slovak Republic and the fourth largest of + all cities on the river Danube. Officially, the population of the city is + about 475,000; however, some sources estimate the daily number of people moving + around the city based on mobile phone SIM cards is more than 570,000. Bratislava + is in southwestern Slovakia at the foot of the Little Carpathians, occupying + both banks of the Danube and the left bank of the River Morava. The city is + situated on the border of three countries\u2014Slovakia, Austria, and Hungary\u2014and + is the only national capital to have land borders with two other sovereign + states. Its geographic position places it exceptionally close to the Austrian + capital Vienna, making them the closest pair of capital cities in Europe at + just 50 kilometres (31\\\\xa0mi) apart.')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"cultural + exploration, history, local cuisine\\\",\\\"weather_info\\\":\\\"Current temperature + is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\\",\\\"destination_details\\\":\\\"Bratislava is the + capital and largest city of Slovakia, known for its location by the Danube + River and proximity to Austria and Hungary. It's an important cultural, economic, + and educational center of the region.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_Ka1nJGRoPHD4PU7UUYNV3Gpi\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2097\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"136\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2233\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"4+Xf2IVfm8g=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042234891664000\",\"endTimeUnixNano\":\"1763042274301203000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"tlKdJZeE6c0=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042274303621000\",\"endTimeUnixNano\":\"1763042288331400000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b5b6d48194ac4ff233dc086dc6\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Bratislava' info=DestinationInfo(title='Bratislava', + summary='Capital and largest city of Slovakia', extract='Bratislava is the + capital and largest city of the Slovak Republic and the fourth largest of + all cities on the river Danube. Officially, the population of the city is + about 475,000; however, some sources estimate the daily number of people moving + around the city based on mobile phone SIM cards is more than 570,000. Bratislava + is in southwestern Slovakia at the foot of the Little Carpathians, occupying + both banks of the Danube and the left bank of the River Morava. The city is + situated on the border of three countries\u2014Slovakia, Austria, and Hungary\u2014and + is the only national capital to have land borders with two other sovereign + states. Its geographic position places it exceptionally close to the Austrian + capital Vienna, making them the closest pair of capital cities in Europe at + just 50 kilometres (31\\\\xa0mi) apart.')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b8467481948a834b801a722259\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"cultural + exploration, history, local cuisine\\\",\\\"weather_info\\\":\\\"Current temperature + is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\\",\\\"destination_details\\\":\\\"Bratislava is the + capital and largest city of Slovakia, known for its location by the Danube + River and proximity to Austria and Hungary. It's an important cultural, economic, + and educational center of the region.\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 5-day itinerary for Bratislava' itinerary=TravelItinerary(trip_title='Cultural + Journey Through Bratislava', destination='Bratislava', duration_days=5, total_budget_estimate='$800', + daily_plans=[DayPlan(day_number=1, date='2023-11-15', title='Arrival and Old + Town Exploration', activities=[DayActivity(time='10:00 AM', activity='Arrive + in Bratislava', location='Bratislava Airport', notes='Take a taxi or shuttle + to the city center.'), DayActivity(time='11:30 AM', activity='Check-in to + accommodation', location='Hotel Danubia', notes='Moderate hotel near the city + center.'), DayActivity(time='12:30 PM', activity='Lunch at Slovak Pub', location='Obchodn\xE1 + 62', notes='Try traditional Slovak dishes like bryndzov\xE9 halu\u0161ky.'), + DayActivity(time='2:00 PM', activity='Stroll through the Old Town', location='Bratislava + Old Town', notes=\\\"Visit St. Michael's Gate, Main Square, and the Old Town + Hall.\\\"), DayActivity(time='4:00 PM', activity='Visit the Bratislava City + Museum', location='Radni\u010Dn\xE1 1', notes=\\\"Learn about the city's history.\\\"), + DayActivity(time='6:00 PM', activity='Dinner at Flagship Restaurant', location='Hlavn\xE9 + n\xE1mestie 4', notes='Enjoy local cuisine with a modern twist.')], meals=['Lunch + at Slovak Pub', 'Dinner at Flagship Restaurant'], accommodation='Hotel Danubia'), + DayPlan(day_number=2, date='2023-11-16', title='Castles and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at hotel', location='Hotel Danubia', notes='Enjoy + a complimentary breakfast.'), DayActivity(time='9:30 AM', activity='Visit + Bratislava Castle', location='Bratislava Castle', notes='Explore the castle + and enjoy views of the Danube.'), DayActivity(time='12:00 PM', activity='Lunch + at Caf\xE9 23', location='Karpatsk\xE1 23', notes='A trendy caf\xE9 with local + dishes.'), DayActivity(time='1:30 PM', activity='Tour the Slovak National + Gallery', location='R\xE1zusovo n\xE1bre\u017Eie 2', notes='Explore Slovak + art and culture.'), DayActivity(time='4:00 PM', activity='Relax at Sad Janka + Kr\xE1\u013Ea park', location='\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_Ka1nJGRoPHD4PU7UUYNV3Gpi\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"I've + planned a 5-day cultural journey to Bratislava, Slovakia for you. Here's your + itinerary:\\n\\n### Cultural Journey Through Bratislava\\n\\n#### **Day 1: + Arrival and Old Town Exploration**\\n- **10:00 AM:** Arrive in Bratislava + - Shuttle or taxi to city center.\\n- **11:30 AM:** Check-in to Hotel Danubia.\\n- + **12:30 PM:** Lunch at Slovak Pub - Try bryndzov\xE9 halu\u0161ky.\\n- **2:00 + PM:** Stroll through the Old Town - Visit St. Michael's Gate.\\n- **4:00 PM:** + Visit the Bratislava City Museum.\\n- **6:00 PM:** Dinner at Flagship Restaurant.\\n\\n#### + **Day 2: Castles and Culture**\\n- **8:00 AM:** Breakfast at Hotel Danubia.\\n- + **9:30 AM:** Visit Bratislava Castle - Great views of the Danube.\\n- **12:00 + PM:** Lunch at Caf\xE9 23.\\n- **1:30 PM:** Tour the Slovak National Gallery.\\n- + **4:00 PM:** Relax at Sad Janka Kr\xE1\u013Ea park.\\n- **7:00 PM:** Dinner + at Modr\xE1 Hviezda.\\n\\n#### **Day 3: Day Trip to Devin Castle**\\n- **8:00 + AM:** Breakfast at Hotel Danubia.\\n- **9:30 AM:** Travel to Devin Castle.\\n- + **10:00 AM:** Explore Devin Castle.\\n- **12:30 PM:** Lunch at Restaurant + Devin.\\n- **2:00 PM:** Return to Bratislava.\\n- **3:00 PM:** Visit the Blue + Church.\\n- **5:00 PM:** Free time in Old Town.\\n- **7:00 PM:** Dinner at + U Zlateho Hruska.\\n\\n#### **Day 4: Art and History**\\n- **8:00 AM:** Breakfast + at Hotel Danubia.\\n- **9:30 AM:** Visit the Museum of Jewish Culture.\\n- + **11:30 AM:** Explore the Bratislava City Gallery.\\n- **1:00 PM:** Lunch + at Urban House.\\n- **3:00 PM:** Visit the Presidential Palace.\\n- **5:00 + PM:** Dinner at Primi.\\n\\n#### **Day 5: Departure and Local Markets**\\n- + **8:00 AM:** Breakfast at Hotel Danubia.\\n- **9:30 AM:** Visit the Old Market + Hall.\\n- **11:00 AM:** Free time for shopping.\\n- **1:00 PM:** Lunch at + the market.\\n- **2:30 PM:** Check-out from hotel.\\n- **3:00 PM:** Transfer + to airport.\\n\\n### Travel Tips\\n- Use public transport for getting around + the city.\\n- Carry an umbrella or rain jacket for rain on November 17 and + 19.\\n- Learn basic Slovak phrases to enhance local interactions.\\n\\n### + Packing Suggestions\\n- Warm clothing layers and comfortable walk\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"3764\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"608\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4372\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ga2ddWDpwj0=\",\"parentSpanId\":\"7Pd25D1LOvw=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042217954037000\",\"endTimeUnixNano\":\"1763042219061913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"qlkYoPsmsxQ=\",\"parentSpanId\":\"IbK2qPHFUEU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042222244554000\",\"endTimeUnixNano\":\"1763042223207393000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Bratislava\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"OxRjSied6Tk=\",\"parentSpanId\":\"Mix/K/BkE/k=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042226855593000\",\"endTimeUnixNano\":\"1763042227766872000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=48.1516988\\u0026longitude=17.1093063\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"hMj8FLIUcPo=\",\"parentSpanId\":\"th//dB4A1jI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042230364285000\",\"endTimeUnixNano\":\"1763042230934612000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Bratislava\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"kUQ5JjMwU3s=\",\"parentSpanId\":\"4+Xf2IVfm8g=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042235404005000\",\"endTimeUnixNano\":\"1763042274299868000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 5-day itinerary for Bratislava.\\n\\nTrip + Details:\\n- Destination: Bratislava\\n- Duration: 5 days\\n- Budget: moderate\\n- + Interests: cultural exploration, history, local cuisine\\n- Weather: Current + temperature is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\n- Destination Info: Bratislava is the capital and + largest city of Slovakia, known for its location by the Danube River and proximity + to Austria and Hungary. It's an important cultural, economic, and educational + center of the region.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and cultural exploration, history, local cuisine + interests.\\nEach day should have 3-5 activities with specific times, locations, + and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS72PQr8E6ISNBF6AHyK4FMvQhCE\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2032\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1443\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"589\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Cultural + Journey Through Bratislava\\\",\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"total_budget_estimate\\\":\\\"$800\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-15\\\",\\\"title\\\":\\\"Arrival + and Old Town Exploration\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Bratislava\\\",\\\"location\\\":\\\"Bratislava Airport\\\",\\\"notes\\\":\\\"Take + a taxi or shuttle to the city center.\\\"},{\\\"time\\\":\\\"11:30 AM\\\",\\\"activity\\\":\\\"Check-in + to accommodation\\\",\\\"location\\\":\\\"Hotel Danubia\\\",\\\"notes\\\":\\\"Moderate + hotel near the city center.\\\"},{\\\"time\\\":\\\"12:30 PM\\\",\\\"activity\\\":\\\"Lunch + at Slovak Pub\\\",\\\"location\\\":\\\"Obchodn\xE1 62\\\",\\\"notes\\\":\\\"Try + traditional Slovak dishes like bryndzov\xE9 halu\u0161ky.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Stroll through the Old Town\\\",\\\"location\\\":\\\"Bratislava + Old Town\\\",\\\"notes\\\":\\\"Visit St. Michael's Gate, Main Square, and + the Old Town Hall.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Visit + the Bratislava City Museum\\\",\\\"location\\\":\\\"Radni\u010Dn\xE1 1\\\",\\\"notes\\\":\\\"Learn + about the city's history.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Flagship Restaurant\\\",\\\"location\\\":\\\"Hlavn\xE9 n\xE1mestie 4\\\",\\\"notes\\\":\\\"Enjoy + local cuisine with a modern twist.\\\"}],\\\"meals\\\":[\\\"Lunch at Slovak + Pub\\\",\\\"Dinner at Flagship Restaurant\\\"],\\\"accommodation\\\":\\\"Hotel + Danubia\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-16\\\",\\\"title\\\":\\\"Castles + and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at hotel\\\",\\\"location\\\":\\\"Hotel Danubia\\\",\\\"notes\\\":\\\"Enjoy + a complimentary breakfast.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Bratislava Castle\\\",\\\"location\\\":\\\"Bratislava Castle\\\",\\\"notes\\\":\\\"Explore + the castle and enjoy views of the Danube.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Caf\xE9 23\\\",\\\"location\\\":\\\"Karpatsk\xE1 23\\\",\\\"notes\\\":\\\"A + trendy caf\xE9 with local dishes.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Tour + the Slovak National Gallery\\\",\\\"location\\\":\\\"R\xE1zusovo n\xE1bre\u017Eie + 2\\\",\\\"notes\\\":\\\"Explore Slovak art and culture.\\\"},{\\\"time\\\":\\\"4:00 + PM\\\",\\\"activity\\\":\\\"Relax at Sad Janka Kr\xE1\u013Ea park\\\",\\\"location\\\":\\\"Sad + Janka Kr\xE1\u013Ea\\\",\\\"notes\\\":\\\"Enjoy nature and views of the Danube.\\\"},{\\\"time\\\":\\\"7:00 + PM\\\",\\\"activity\\\":\\\"Dinner at Modr\xE1 Hviezda\\\",\\\"location\\\":\\\"Hradn\xE9 + n\xE1mestie 2\\\",\\\"notes\\\":\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '86232' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/42ff472d7feb6215bec0cf4e350675b2 + response: + body: + string: '{"batches":[{"resource":{"attributes":[{"key":"telemetry.sdk.language","value":{"stringValue":"python"}},{"key":"telemetry.sdk.name","value":{"stringValue":"opentelemetry"}},{"key":"telemetry.sdk.version","value":{"stringValue":"1.38.0"}},{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},"scopeSpans":[{"scope":{"name":"opentelemetry.instrumentation.openai_agents","version":"0.47.5"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"NPzxuz+vo54=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187236891000","endTimeUnixNano":"1763042189460181000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"gen_ai.prompt.0.role","value":{"stringValue":"user"}},{"key":"gen_ai.prompt.0.content","value":{"stringValue":"I + want to visit New York for 7 days with a moderate budget. I love history. + Create me an itinerary."}},{"key":"llm.request.functions.0.name","value":{"stringValue":"search_destinations"}},{"key":"llm.request.functions.0.description","value":{"stringValue":"Search + for travel destinations by region or subregion using REST Countries API."}},{"key":"llm.request.functions.0.parameters","value":{"stringValue":"{\"properties\": + {\"region\": {\"default\": \"\", \"description\": \"Region to search (e.g., + \\\"Europe\\\", \\\"Asia\\\", \\\"Americas\\\")\", \"title\": \"Region\", + \"type\": \"string\"}, \"subregion\": {\"default\": \"\", \"description\": + \"Subregion to search (e.g., \\\"Southern Europe\\\", \\\"Southeast Asia\\\")\", + \"title\": \"Subregion\", \"type\": \"string\"}}, \"title\": \"search_destinations_args\", + \"type\": \"object\", \"additionalProperties\": false, \"required\": [\"region\", + \"subregion\"]}"}},{"key":"llm.request.functions.1.name","value":{"stringValue":"get_location_coordinates"}},{"key":"llm.request.functions.1.description","value":{"stringValue":"Get + coordinates for a location using Nominatim (OpenStreetMap) API."}},{"key":"llm.request.functions.1.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the city or location\", \"title\": + \"Location Name\", \"type\": \"string\"}}, \"required\": [\"location_name\"], + \"title\": \"get_location_coordinates_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.2.name","value":{"stringValue":"get_weather_forecast"}},{"key":"llm.request.functions.2.description","value":{"stringValue":"Get + current weather and 7-day forecast using Open-Meteo API (no API key required)."}},{"key":"llm.request.functions.2.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the location\", \"title\": + \"Location Name\", \"type\": \"string\"}, \"latitude\": {\"description\": + \"Latitude coordinate\", \"title\": \"Latitude\", \"type\": \"number\"}, \"longitude\": + {\"description\": \"Longitude coordinate\", \"title\": \"Longitude\", \"type\": + \"number\"}}, \"required\": [\"location_name\", \"latitude\", \"longitude\"], + \"title\": \"get_weather_forecast_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.3.name","value":{"stringValue":"get_destination_info"}},{"key":"llm.request.functions.3.description","value":{"stringValue":"Get + information about a destination from Wikipedia API."}},{"key":"llm.request.functions.3.parameters","value":{"stringValue":"{\"properties\": + {\"destination_name\": {\"description\": \"Name of the destination\", \"title\": + \"Destination Name\", \"type\": \"string\"}}, \"required\": [\"destination_name\"], + \"title\": \"get_destination_info_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.4.name","value":{"stringValue":"calculate_travel_distance"}},{"key":"llm.request.functions.4.description","value":{"stringValue":"Calculate + distance and estimated flight time between two locations.\nUses Haversine + formula for distance calculation."}},{"key":"llm.request.functions.4.parameters","value":{"stringValue":"{\"properties\": + {\"from_location\": {\"description\": \"Starting location name\", \"title\": + \"From Location\", \"type\": \"string\"}, \"to_location\": {\"description\": + \"Destination location name\", \"title\": \"To Location\", \"type\": \"string\"}, + \"from_lat\": {\"description\": \"Starting latitude\", \"title\": \"From Lat\", + \"type\": \"number\"}, \"from_lon\": {\"description\": \"Starting longitude\", + \"title\": \"From Lon\", \"type\": \"number\"}, \"to_lat\": {\"description\": + \"Destination latitude\", \"title\": \"To Lat\", \"type\": \"number\"}, \"to_lon\": + {\"description\": \"Destination longitude\", \"title\": \"To Lon\", \"type\": + \"number\"}}, \"required\": [\"from_location\", \"to_location\", \"from_lat\", + \"from_lon\", \"to_lat\", \"to_lon\"], \"title\": \"calculate_travel_distance_args\", + \"type\": \"object\", \"additionalProperties\": false}"}},{"key":"llm.request.functions.5.name","value":{"stringValue":"create_itinerary"}},{"key":"llm.request.functions.5.description","value":{"stringValue":"Create + a detailed day-by-day travel itinerary using AI."}},{"key":"llm.request.functions.5.parameters","value":{"stringValue":"{\"properties\": + {\"destination\": {\"description\": \"Main destination for the trip\", \"title\": + \"Destination\", \"type\": \"string\"}, \"duration_days\": {\"description\": + \"Number of days for the trip\", \"title\": \"Duration Days\", \"type\": \"integer\"}, + \"budget\": {\"description\": \"Budget level (budget, moderate, luxury)\", + \"title\": \"Budget\", \"type\": \"string\"}, \"interests\": {\"description\": + \"Traveler interests (e.g., food, history, nature)\", \"title\": \"Interests\", + \"type\": \"string\"}, \"weather_info\": {\"default\": \"\", \"description\": + \"Weather forecast information (optional)\", \"title\": \"Weather Info\", + \"type\": \"string\"}, \"destination_details\": {\"default\": \"\", \"description\": + \"Additional destination details (optional)\", \"title\": \"Destination Details\", + \"type\": \"string\"}}, \"required\": [\"destination\", \"duration_days\", + \"budget\", \"interests\", \"weather_info\", \"destination_details\"], \"title\": + \"create_itinerary_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"gen_ai.request.temperature","value":{"doubleValue":1}},{"key":"gen_ai.request.top_p","value":{"doubleValue":1}},{"key":"gen_ai.request.model","value":{"stringValue":"gpt-4o-2024-08-06"}},{"key":"gen_ai.completion.0.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.0.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.0.tool_calls.0.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.0.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\"}"}},{"key":"gen_ai.completion.0.tool_calls.0.id","value":{"stringValue":"call_M6Cz1ZtgBBRVhPAKwGhP4HkH"}},{"key":"gen_ai.completion.1.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.1.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.1.tool_calls.0.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.1.tool_calls.0.arguments","value":{"stringValue":"{\"destination_name\":\"New + York\"}"}},{"key":"gen_ai.completion.1.tool_calls.0.id","value":{"stringValue":"call_XjU0qIs2w9toMdl7I78qNPRd"}},{"key":"gen_ai.completion.2.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.2.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.2.tool_calls.0.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.2.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\",\"latitude\":40.7128,\"longitude\":-74.006}"}},{"key":"gen_ai.completion.2.tool_calls.0.id","value":{"stringValue":"call_vW1iVMpxm4W5VAjz3uvhFwxl"}},{"key":"gen_ai.usage.prompt_tokens","value":{"intValue":"313"}},{"key":"gen_ai.usage.completion_tokens","value":{"intValue":"81"}},{"key":"llm.usage.total_tokens","value":{"intValue":"394"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Jn+55BUIsg8=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042192790536000","endTimeUnixNano":"1763042197342144000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"qUtAVv3MWrg=","parentSpanId":"i9g02JupVjo=","name":"Travel + Planner Agent.agent","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187234430000","endTimeUnixNano":"1763042197342199000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"agent"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"i9g02JupVjo=","name":"Agent + Workflow","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187232503000","endTimeUnixNano":"1763042197342213000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"workflow"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.workflow.name","value":{"stringValue":"Agent + Workflow"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"ndtaGw2O47w=","parentSpanId":"qUtAVv3MWrg=","name":"get_destination_info.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461414000","endTimeUnixNano":"1763042192787831000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"lAvl8cSGCdQ=","parentSpanId":"qUtAVv3MWrg=","name":"get_weather_forecast.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461614000","endTimeUnixNano":"1763042192787979000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"DRPQ4fXYGOk=","parentSpanId":"qUtAVv3MWrg=","name":"get_location_coordinates.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461045000","endTimeUnixNano":"1763042192788272000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}}]},{"scope":{"name":"opentelemetry.instrumentation.requests","version":"0.59b0"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"gvjOX9XKnIQ=","parentSpanId":"ndtaGw2O47w=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042189966888000","endTimeUnixNano":"1763042190649032000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://en.wikipedia.org/api/rest_v1/page/summary/New%20York"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Vd7J6WeIkI0=","parentSpanId":"lAvl8cSGCdQ=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042190650755000","endTimeUnixNano":"1763042191744238000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://api.open-meteo.com/v1/forecast?latitude=40.7128\u0026longitude=-74.006\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\u0026timezone=auto\u0026forecast_days=7"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"QO7ZImsbB1g=","parentSpanId":"DRPQ4fXYGOk=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042191747300000","endTimeUnixNano":"1763042192786263000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://nominatim.openstreetmap.org/search?q=New+York\u0026format=json\u0026limit=1"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}}]}]}]}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '14143' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/9a8cb895bee63fabb705329a05ced33b + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"VVGqP3Zlh/I=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057714246000\",\"endTimeUnixNano\":\"1763042185226841000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ebIwige/t/I=\",\"parentSpanId\":\"VVGqP3Zlh/I=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057715150000\",\"endTimeUnixNano\":\"1763042185226760000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"XmMF4QV1t5I=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042160420265000\",\"endTimeUnixNano\":\"1763042185224042000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31f412c8193854f3d40a67569bb\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3203a048193a1db4cd095de78a1\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.19.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Malta' itinerary=TravelItinerary(trip_title='Malta: + A Luxurious Journey Through History and Culture', destination='Malta', duration_days=7, + total_budget_estimate='\u20AC5000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Valletta', activities=[DayActivity(time='10:00 AM', activity='Check + into the hotel.', location='Palazzo Consiglia, Valletta', notes='Luxurious + boutique hotel with a historic feel.'), DayActivity(time='12:00 PM', activity='Lunch + at the hotel restaurant.', location='Palazzo Consiglia', notes='Try local + specialties.'), DayActivity(time='2:00 PM', activity='Explore Valletta on + foot.', location='Valletta', notes=\\\"Visit St. John's Co-Cathedral and the + Upper Barracca Gardens.\\\"), DayActivity(time='5:00 PM', activity='Enjoy + a sunset at the Barracca Lift.', location='Upper Barracca Gardens', notes='Stunning + views of the Grand Harbour.'), DayActivity(time='7:30 PM', activity='Dinner + at The Harbour Club.', location='Valletta', notes='Fine dining with Mediterranean + cuisine.')], meals=['Lunch at Palazzo Consiglia', 'Dinner at The Harbour Club'], + accommodation='Palazzo Consiglia, Valletta'), DayPlan(day_number=2, date='2023-10-02', + title='Historical Wonders of Mdina', activities=[DayActivity(time='9:00 AM', + activity='Breakfast at the hotel.', location='Palazzo Consiglia', notes='Enjoy + a gourmet breakfast.'), DayActivity(time='10:30 AM', activity='Visit Mdina, + the Silent City.', location='Mdina', notes='Explore the narrow streets and + historic architecture.'), DayActivity(time='1:00 PM', activity='Lunch at Fontanella + Tea Garden.', location='Mdina', notes='Famous for its cakes and views.'), + DayActivity(time='3:00 PM', activity=\\\"Visit St. Paul's Cathedral and the + Mdina Dungeons.\\\", location='Mdina', notes='Immerse in the history of the + city.'), DayActivity(time='6:00 PM', activity='Return to Valletta.', location='Valletta', + notes='Free evening to relax.'), DayActivity(time='8:00 PM', activity='Dinner + at La Viletta.', location='Valletta', n\"}},{\"key\":\"gen_ai.prompt.19.tool_call_id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Paradise + Found: A Luxurious Escape to Barbados', destination='Barbados', duration_days=7, + total_budget_estimate='$5,000', daily_plans=[DayPlan(day_number=1, date='2023-11-01', + title='Arrival and Beach Relaxation', activities=[DayActivity(time='10:00 + AM', activity='Arrival at Grantley Adams International Airport', location='Bridgetown', + notes='Private transfer to hotel.'), DayActivity(time='12:00 PM', activity='Check-in + at Sandy Lane Hotel', location='Sandy Lane, St. James', notes='Enjoy a welcome + drink upon arrival.'), DayActivity(time='1:00 PM', activity='Lunch at The + Bajan Blue', location='Sandy Lane Hotel', notes='Try the fresh catch of the + day.'), DayActivity(time='3:00 PM', activity='Relax at the beach', location='Sandy + Lane Beach', notes='Enjoy complimentary beach services and cabanas.'), DayActivity(time='7:00 + PM', activity=\\\"Dinner at L'Acajou\\\", location='Sandy Lane Hotel', notes='Reserve + a table for an oceanfront dining experience.')], meals=['Lunch at The Bajan + Blue', \\\"Dinner at L'Acajou\\\"], accommodation='Sandy Lane Hotel'), DayPlan(day_number=2, + date='2023-11-02', title='Exploring the Nature and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at The Bajan Blue', location='Sandy Lane Hotel', + notes='Buffet breakfast included.'), DayActivity(time='9:30 AM', activity=\\\"Visit + Harrison's Cave\\\", location='Welches, St. Thomas', notes='Guided tram tour + of the limestone caves.'), DayActivity(time='12:00 PM', activity='Lunch at + The Cliff', location='The Cliff, St. James', notes='One of the best views + in Barbados.'), DayActivity(time='2:00 PM', activity='Explore the Andromeda + Botanic Gardens', location='Bathsheba', notes='Stroll through beautiful tropical + plants.'), DayActivity(time='5:00 PM', activity='Return to hotel and relax + by the pool', location='Sandy Lane Hotel', notes='Enjoy the sunset views.'), + DayActivity(time='8:00 PM', activity='Dinner at The Tides', location='Holetown', + notes='Fin\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a luxurious winter getaway itinerary for two amazing destinations: Malta and + Barbados. You can choose either for a memorable experience!\\n\\n### Malta: + A Luxurious Journey Through History and Culture\\n\\n#### Overview:\\n- **Duration:** + 7 Days\\n- **Budget:** \u20AC5000\\n- **Interests:** History, culture, relaxation\\n- + **Weather:** Partly cloudy, 14\xB0C to 25\xB0C\\n\\n#### Highlights:\\n- **Explore + Valletta:** Discover historic sites like St. John's Co-Cathedral and the Upper + Barracca Gardens.\\n- **Visit Mdina:** Wander through the narrow streets of + the Silent City.\\n- **Cruise the Blue Lagoon:** Relax and swim in crystal-clear + waters on Comino Island.\\n- **Art and Culture in Valletta:** Enjoy museums, + the Grand Master's Palace, and traditional Maltese cuisine.\\n- **Day in Gozo:** + Experience UNESCO sites and enjoy local cuisine in Xlendi Bay.\\n- **Relaxation + and Spa Day:** Indulge in luxury spa treatments and wine tasting.\\n\\n#### + Suggested Activities:\\n- Stroll through the National Museum of Archaeology.\\n- + Enjoy a Michelin-starred dining experience at Noni.\\n- Unwind at the historic + and luxurious Palazzo Consiglia.\\n\\n---\\n\\n### Barbados: Paradise Found\\n\\n#### + Overview:\\n- **Duration:** 7 Days\\n- **Budget:** $5,000\\n- **Interests:** + Beach, nature, relaxation\\n- **Weather:** Mainly clear with occasional rain, + 26\xB0C to 28\xB0C\\n\\n#### Highlights:\\n- **Stay at Sandy Lane:** Experience + luxury at a top-notch hotel.\\n- **Catamaran Cruise:** Snorkel and swim with + turtles.\\n- **Visit Harrison's Cave:** Explore stunning limestone formations.\\n- + **Beach Relaxation:** Enjoy water sports and sunbathing at Sandy Lane Beach.\\n- + **Cultural Sightseeing:** Visit the Barbados Museum and Andromeda Botanic + Gardens.\\n- **Island Adventure:** Discover the Animal Flower Cave and Bathsheba + Beach.\\n\\n#### Suggested Activities:\\n- Indulge in a private yoga session + on the beach.\\n- Savor local flavors at dining spots like The Cliff and Oistins + Fish Fry.\\n- Book a spa treatment for ultimate relaxation.\\n\\nChoose either + Malta for its rich history and culture or Barbados for its tropical para\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"6963\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"482\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7445\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"embCySXGZiM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057716128000\",\"endTimeUnixNano\":\"1763042059661983000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"60\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"525\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"mC8CCwLW76g=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663097000\",\"endTimeUnixNano\":\"1763042062451067000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ssDCKShkL44=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663477000\",\"endTimeUnixNano\":\"1763042062451172000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fuu6tO+Ndlo=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042062452499000\",\"endTimeUnixNano\":\"1763042064799092000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1003\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1055\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fvHJdvNTMws=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064799830000\",\"endTimeUnixNano\":\"1763042067739773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"T8dJZDmT4I4=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064800127000\",\"endTimeUnixNano\":\"1763042067739862000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"v6cWcKHOCjI=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042067741423000\",\"endTimeUnixNano\":\"1763042070448846000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1077\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"86\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1163\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"UEIsxC37pwE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449031000\",\"endTimeUnixNano\":\"1763042072801957000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"THKreibx8ug=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449103000\",\"endTimeUnixNano\":\"1763042072802080000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"YBTnmbTN6jE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042072803790000\",\"endTimeUnixNano\":\"1763042075107212000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1391\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1443\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"SxqLZKfWCmA=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108148000\",\"endTimeUnixNano\":\"1763042076670490000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"5dBBk3l1eiQ=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108516000\",\"endTimeUnixNano\":\"1763042076670556000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"cE+1FFJhlnU=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076671577000\",\"endTimeUnixNano\":\"1763042082126494000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1535\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"208\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1743\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"QAlZHx6RuLM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082127730000\",\"endTimeUnixNano\":\"1763042160416987000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"th2IYCV4hsE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082128207000\",\"endTimeUnixNano\":\"1763042160417136000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HDPGse/8x4o=\",\"parentSpanId\":\"mC8CCwLW76g=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042060166394000\",\"endTimeUnixNano\":\"1763042061283475000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"IA+JMvfXJl8=\",\"parentSpanId\":\"ssDCKShkL44=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042061306153000\",\"endTimeUnixNano\":\"1763042062439682000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"PzmXYx0yNzo=\",\"parentSpanId\":\"fvHJdvNTMws=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042065903652000\",\"endTimeUnixNano\":\"1763042066847763000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Malta\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ON9RLT3j6a4=\",\"parentSpanId\":\"T8dJZDmT4I4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042066849545000\",\"endTimeUnixNano\":\"1763042067737708000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"M2Q2FV2cXIU=\",\"parentSpanId\":\"UEIsxC37pwE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042070951475000\",\"endTimeUnixNano\":\"1763042071877256000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=35.8885993\\u0026longitude=14.4476911\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Ze33HN9DUpc=\",\"parentSpanId\":\"THKreibx8ug=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042071879722000\",\"endTimeUnixNano\":\"1763042072800019000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HKpm5tCLJzU=\",\"parentSpanId\":\"SxqLZKfWCmA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042075611055000\",\"endTimeUnixNano\":\"1763042076145487000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Malta\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"lAzYqhlHfpg=\",\"parentSpanId\":\"5dBBk3l1eiQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076148467000\",\"endTimeUnixNano\":\"1763042076669422000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Znd3vlNcirg=\",\"parentSpanId\":\"th2IYCV4hsE=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042123087205000\",\"endTimeUnixNano\":\"1763042160414874000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: beach, nature, relaxation\\n- Weather: Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\n- Destination Info: Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the luxury budget level and beach, nature, + relaxation interests.\\nEach day should have 3-5 activities with specific + times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS5EtpivASLkttPJzZ83ik15FlLX\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2260\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1719\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"541\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Paradise + Found: A Luxurious Escape to Barbados\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$5,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-01\\\",\\\"title\\\":\\\"Arrival + and Beach Relaxation\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrival + at Grantley Adams International Airport\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Private + transfer to hotel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at Sandy Lane Hotel\\\",\\\"location\\\":\\\"Sandy Lane, St. James\\\",\\\"notes\\\":\\\"Enjoy + a welcome drink upon arrival.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Try + the fresh catch of the day.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at the beach\\\",\\\"location\\\":\\\"Sandy Lane Beach\\\",\\\"notes\\\":\\\"Enjoy + complimentary beach services and cabanas.\\\"},{\\\"time\\\":\\\"7:00 PM\\\",\\\"activity\\\":\\\"Dinner + at L'Acajou\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Reserve + a table for an oceanfront dining experience.\\\"}],\\\"meals\\\":[\\\"Lunch + at The Bajan Blue\\\",\\\"Dinner at L'Acajou\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-02\\\",\\\"title\\\":\\\"Exploring + the Nature and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Buffet + breakfast included.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Harrison's Cave\\\",\\\"location\\\":\\\"Welches, St. Thomas\\\",\\\"notes\\\":\\\"Guided + tram tour of the limestone caves.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Cliff\\\",\\\"location\\\":\\\"The Cliff, St. James\\\",\\\"notes\\\":\\\"One + of the best views in Barbados.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + the Andromeda Botanic Gardens\\\",\\\"location\\\":\\\"Bathsheba\\\",\\\"notes\\\":\\\"Stroll + through beautiful tropical plants.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to hotel and relax by the pool\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Enjoy + the sunset views.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Tides\\\",\\\"location\\\":\\\"Holetown\\\",\\\"notes\\\":\\\"Fine + dining with a local twist.\\\"}],\\\"meals\\\":[\\\"Breakfast at The Bajan + Blue\\\",\\\"Lunch at The Cliff\\\",\\\"Dinner at The Tides\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"BVSE4lyy6Ng=\",\"parentSpanId\":\"QAlZHx6RuLM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042082648743000\",\"endTimeUnixNano\":\"1763042123074678000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Malta.\\n\\nTrip + Details:\\n- Destination: Malta\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: history, culture, relaxation\\n- Weather: Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\n- Destination Info: Malta is an island country + in Southern Europe, located in the Mediterranean Sea. The country's capital, + Valletta, is a historic city rich in culture and architecture. Official languages + are Maltese and English.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the luxury budget level and history, culture, relaxation interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS4aBtO0u5Rq9bvPgdgOeSH0n75R\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2342\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1792\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"550\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Malta: + A Luxurious Journey Through History and Culture\\\",\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC5000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Valletta\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia, Valletta\\\",\\\"notes\\\":\\\"Luxurious + boutique hotel with a historic feel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Try + local specialties.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + Valletta on foot.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Visit + St. John's Co-Cathedral and the Upper Barracca Gardens.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a sunset at the Barracca Lift.\\\",\\\"location\\\":\\\"Upper + Barracca Gardens\\\",\\\"notes\\\":\\\"Stunning views of the Grand Harbour.\\\"},{\\\"time\\\":\\\"7:30 + PM\\\",\\\"activity\\\":\\\"Dinner at The Harbour Club.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Fine + dining with Mediterranean cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Palazzo + Consiglia\\\",\\\"Dinner at The Harbour Club\\\"],\\\"accommodation\\\":\\\"Palazzo + Consiglia, Valletta\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Historical + Wonders of Mdina\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Enjoy + a gourmet breakfast.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Visit + Mdina, the Silent City.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Explore + the narrow streets and historic architecture.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Fontanella Tea Garden.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Famous + for its cakes and views.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + St. Paul's Cathedral and the Mdina Dungeons.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Immerse + in the history of the city.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Return + to Valletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Free + evening to relax.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at La Viletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Authentic + Maltese cuisine.\\\"}],\\\"meals\\\":[\\\"Breakfast at Palazzo Consiglia\\\",\\\"Lunch + at Fontanella Tea Garden\\\",\\\"Dinner at La Viletta\\\"],\\\"accommodation\\\":\\\"Palazzo\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '127530' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/693bde2879b745ff467c20bf9cd2ea7a + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"pApb0LsOSf0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984002122000\",\"endTimeUnixNano\":\"1763042055706374000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Ty846xocHPs=\",\"parentSpanId\":\"pApb0LsOSf0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984003244000\",\"endTimeUnixNano\":\"1763042055706244000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"r4Bxnys8Ajs=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042004652154000\",\"endTimeUnixNano\":\"1763042043092842000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"dvw9i3v4lK0=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042043095808000\",\"endTimeUnixNano\":\"1763042055704401000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2d2455c81978681b90b08ba66c7\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Nature + \\u0026 Adventure in New Zealand: A Week of Wonders', destination='New Zealand', + duration_days=7, total_budget_estimate='$1,500 - $2,000', daily_plans=[DayPlan(day_number=1, + date='2023-10-01', title='Arrival in Auckland', activities=[DayActivity(time='10:00 + AM', activity='Arrive at Auckland Airport', location='Auckland Airport', notes='Collect + rental car from the airport.'), DayActivity(time='12:00 PM', activity='Lunch + at Depot Eatery', location='Auckland', notes='Try local favorites like the + green-lipped mussels.'), DayActivity(time='2:00 PM', activity='Visit Auckland + War Memorial Museum', location='Domain Drive, Auckland', notes='Explore Maori + culture and New Zealand\u2019s natural history.'), DayActivity(time='4:00 + PM', activity='Stroll in Auckland Domain', location='Auckland', notes='Enjoy + the gardens and scenic views.'), DayActivity(time='6:00 PM', activity='Dinner + at The Glass Goose Bar \\u0026 Eatery', location='Auckland', notes='Outdoor + seating available.')], meals=['Lunch at Depot Eatery', 'Dinner at The Glass + Goose Bar \\u0026 Eatery'], accommodation='SkyCity Hotel, Auckland'), DayPlan(day_number=2, + date='2023-10-02', title='Exploring Rotorua', activities=[DayActivity(time='8:00 + AM', activity='Drive to Rotorua', location='Auckland to Rotorua (approx. 3 + hours)', notes='Enjoy scenic views along the way.'), DayActivity(time='11:00 + AM', activity='Visit Te Puia', location='Rotorua', notes='See geysers and + learn about Maori culture.'), DayActivity(time='1:00 PM', activity='Lunch + at Puku Puku Caf\xE9', location='Rotorua', notes='Sample local dishes.'), + DayActivity(time='3:00 PM', activity='Relax in the Polynesian Spa', location='Rotorua', + notes='Enjoy geothermal pools.'), DayActivity(time='6:00 PM', activity='Dinner + at Eat Streat', location='Rotorua', notes='Choose from various food stalls.')], + meals=['Lunch at Puku Puku Caf\xE9', 'Dinner at Eat Streat'], accommodation='Regent + of Rotorua'), DayPlan(day_number=3, date='2023-1\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"### + Nature \\u0026 Adventure in New Zealand: A Week of Wonders\\n\\n#### Destination: + New Zealand\\n- **Duration:** 7 Days\\n- **Budget:** Moderate ($1,500 - $2,000)\\n- + **Interests:** Nature, Adventure, Culture\\n\\n#### Weather Insights\\n- Current + conditions are overcast with a temperature of 7.6\xB0C.\\n- Expect mild temperatures + with some precipitation next week, ranging from 4\xB0C to 22\xB0C.\\n\\n#### + Trip Overview\\n\\n**Day 1: Arrival in Auckland**\\n- **10:00 AM:** Arrive + at Auckland Airport - Collect rental car.\\n- **12:00 PM:** Lunch at Depot + Eatery - Try local green-lipped mussels.\\n- **2:00 PM:** Visit Auckland War + Memorial Museum - Explore Maori culture.\\n- **4:00 PM:** Stroll in Auckland + Domain - Enjoy gardens and views.\\n- **6:00 PM:** Dinner at The Glass Goose + Bar \\u0026 Eatery.\\n- **Accommodation:** SkyCity Hotel, Auckland\\n\\n**Day + 2: Exploring Rotorua**\\n- **8:00 AM:** Drive to Rotorua (3 hours).\\n- **11:00 + AM:** Visit Te Puia - See geysers and Maori culture.\\n- **1:00 PM:** Lunch + at Puku Puku Caf\xE9 - Sample local dishes.\\n- **3:00 PM:** Relax in Polynesian + Spa - Enjoy geothermal pools.\\n- **6:00 PM:** Dinner at Eat Streat.\\n- **Accommodation:** + Regent of Rotorua\\n\\n**Day 3: Adventure in Taupo**\\n- **8:00 AM:** Drive + to Taupo (1 hour).\\n- **10:00 AM:** Visit Huka Falls.\\n- **12:00 PM:** Lunch + at The Boat Shed Caf\xE9.\\n- **2:00 PM:** Skydiving or Jet Boating - Book + in advance.\\n- **5:00 PM:** Relax at Taupo Lake Front.\\n- **Accommodation:** + Millennium Hotel Taupo\\n\\n**Day 4: Tongariro National Park**\\n- **7:00 + AM:** Drive to Tongariro (1 hour).\\n- **8:30 AM:** Begin Tongariro Alpine + Crossing - Full-day hike.\\n- **12:00 PM:** Lunch on the trail - Pack a picnic.\\n- + **4:00 PM:** Complete hike - Stunning views.\\n- **6:00 PM:** Dinner at a + local lodge.\\n- **Accommodation:** Chateau Tongariro Hotel\\n\\n**Day 5: + Wellington Culture Day**\\n- **8:00 AM:** Drive to Wellington (4 hours).\\n- + **12:00 PM:** Lunch at Fidel's Caf\xE9.\\n- **2:00 PM:** Visit Te Papa Tongarewa + Museum - Free entry.\\n- **4:00 PM:** Walk along Wellington Waterfront.\\n- + **6:00 PM:** Dinner at Ortega Fish Shack.\\n- **A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4339\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"846\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5185\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"IS6vpvXSyWc=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984005653000\",\"endTimeUnixNano\":\"1763041985613511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"936\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"959\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"brUFs0ciw1M=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041985613918000\",\"endTimeUnixNano\":\"1763041987102501000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Irx+5vAh2RA=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041987103912000\",\"endTimeUnixNano\":\"1763041990567857000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"801\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8D1wUHRUnJY=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568009000\",\"endTimeUnixNano\":\"1763041993540330000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Z0YMsVUAJiE=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568056000\",\"endTimeUnixNano\":\"1763041993540426000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"YOs61ryvpF4=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041993541968000\",\"endTimeUnixNano\":\"1763041995719255000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"876\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"84\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"960\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"4JCF5eBk2tQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719607000\",\"endTimeUnixNano\":\"1763041998146609000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ixR9+7Z/j1o=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719759000\",\"endTimeUnixNano\":\"1763041998146773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8mbS0moocyI=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041998148255000\",\"endTimeUnixNano\":\"1763041999477499000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2374\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"18\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2392\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ZXf5rcFUcLQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041999478441000\",\"endTimeUnixNano\":\"1763042000768653000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"1qbdTW8b/2E=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042000769229000\",\"endTimeUnixNano\":\"1763042004651429000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2545\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2687\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"NKOz3ltzNm0=\",\"parentSpanId\":\"r4Bxnys8Ajs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042005169975000\",\"endTimeUnixNano\":\"1763042043090298000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: nature, adventure, culture\\n- Weather: Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\n- Destination Info: New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It's known for varied topography and sharp mountain peaks, + including the Southern Alps. The capital city is Wellington, and its most + populous city is Auckland.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and nature, adventure, culture interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS3K2CF576d4YsisW6wGQEds7rmH\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2169\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1573\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"596\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Nature + \\u0026 Adventure in New Zealand: A Week of Wonders\\\",\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500 + - $2,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + rental car from the airport.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Depot Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Try + local favorites like the green-lipped mussels.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Domain + Drive, Auckland\\\",\\\"notes\\\":\\\"Explore Maori culture and New Zealand\u2019s + natural history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Stroll + in Auckland Domain\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Enjoy + the gardens and scenic views.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Outdoor + seating available.\\\"}],\\\"meals\\\":[\\\"Lunch at Depot Eatery\\\",\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + Rotorua\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Rotorua\\\",\\\"location\\\":\\\"Auckland to Rotorua (approx. 3 hours)\\\",\\\"notes\\\":\\\"Enjoy + scenic views along the way.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit + Te Puia\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"See geysers + and learn about Maori culture.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Puku Puku Caf\xE9\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Sample + local dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + in the Polynesian Spa\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Enjoy + geothermal pools.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Eat Streat\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Choose + from various food stalls.\\\"}],\\\"meals\\\":[\\\"Lunch at Puku Puku Caf\xE9\\\",\\\"Dinner + at Eat Streat\\\"],\\\"accommodation\\\":\\\"Regent of Rotorua\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Adventure + in Taupo\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Taupo\\\",\\\"location\\\":\\\"Rotorua to Taupo (approx. 1 hour)\\\",\\\"notes\\\":\\\"Stop + at Huk\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"056VGM+8Nok=\",\"parentSpanId\":\"brUFs0ciw1M=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041986115747000\",\"endTimeUnixNano\":\"1763041987094583000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"kvjaqj4KYrQ=\",\"parentSpanId\":\"8D1wUHRUnJY=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041991671179000\",\"endTimeUnixNano\":\"1763041992478589000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"u+rad2kmPnI=\",\"parentSpanId\":\"Z0YMsVUAJiE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041992480116000\",\"endTimeUnixNano\":\"1763041993538494000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ETHKBPTcA2s=\",\"parentSpanId\":\"4JCF5eBk2tQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041996225152000\",\"endTimeUnixNano\":\"1763041997195369000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"jQ6zmabmw2M=\",\"parentSpanId\":\"ixR9+7Z/j1o=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041997198300000\",\"endTimeUnixNano\":\"1763041998144145000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"0YqSiXc6Hig=\",\"parentSpanId\":\"ZXf5rcFUcLQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041999981250000\",\"endTimeUnixNano\":\"1763042000767913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '98254' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/eed63641fc3ffa3ea40a166e2604edd2 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"kDfoXagrNmk=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306563000\",\"endTimeUnixNano\":\"1763041981994302000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"5t6oCNV1x24=\",\"parentSpanId\":\"kDfoXagrNmk=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306752000\",\"endTimeUnixNano\":\"1763041981994217000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"CPDw9H+t3W0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041900556562000\",\"endTimeUnixNano\":\"1763041909681624000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are some great beach destinations for families in the Americas to consider:\\n\\n1. + **Barbados (Caribbean)**\\n - Language: English\\n - Currency: BBD\\n + \ - Known for its beautiful sandy beaches and vibrant culture.\\n\\n2. **Puerto + Rico (Caribbean)**\\n - Languages: English, Spanish\\n - Currency: USD\\n + \ - Offers lovely beaches, lush rainforests, and a rich cultural heritage.\\n\\n3. + **Turks and Caicos Islands (Caribbean)**\\n - Language: English\\n - Currency: + USD\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\n\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\n\\nI'll gather weather + information and details about Barbados and then create your itinerary.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"664\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"221\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"885\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"gjU8x51ljN8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909682975000\",\"endTimeUnixNano\":\"1763041912228857000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"saPJCTZOa8E=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909683354000\",\"endTimeUnixNano\":\"1763041912228748000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"v4pJsgk8eu8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041912233276000\",\"endTimeUnixNano\":\"1763041916478547000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1859\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"37\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1896\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vW7dC7113KM=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041916479365000\",\"endTimeUnixNano\":\"1763041923081358000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"S5LEq3ro4i0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041923083562000\",\"endTimeUnixNano\":\"1763041926952714000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2178\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"127\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2305\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"0revCekYick=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041926953355000\",\"endTimeUnixNano\":\"1763041968277636000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"awXbMZjA1IQ=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041968278645000\",\"endTimeUnixNano\":\"1763041981992200000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e284b4408193b787ece129274ff2\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Beach + Bliss in Barbados: A 7-Day Tropical Escape', destination='Barbados', duration_days=7, + total_budget_estimate='$1,500', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and Beach Day', activities=[DayActivity(time='12:00 PM', activity='Check-in + at hotel', location='Turtle Beach by Elegant Hotels', notes='Enjoy welcome + drinks and settle into your room.'), DayActivity(time='1:30 PM', activity='Lunch + at the hotel restaurant', location='Turtle Beach', notes='Try the grilled + fish with local spices.'), DayActivity(time='3:00 PM', activity='Relax at + Dover Beach', location='Dover Beach', notes='Beach chairs and umbrellas available + for rent.'), DayActivity(time='6:00 PM', activity='Sunset viewing', location='Dover + Beach', notes='Perfect spot for photos.'), DayActivity(time='7:30 PM', activity='Dinner + at The Oistins Fish Fry', location='Oistins', notes='A vibrant atmosphere + with fresh seafood.')], meals=['Lunch at Turtle Beach', 'Dinner at Oistins + Fish Fry'], accommodation='Turtle Beach by Elegant Hotels'), DayPlan(day_number=2, + date='2023-10-02', title='Explore Bridgetown', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at the hotel', location='Turtle Beach', notes='Buffet + style with local and international options.'), DayActivity(time='9:30 AM', + activity='Visit the Barbados Museum \\u0026 Historical Society', location='Bridgetown', + notes=\\\"Learn about the island's history.\\\"), DayActivity(time='12:00 + PM', activity='Lunch at Brown Sugar', location='Bridgetown', notes='Taste + local dishes in an outdoor setting.'), DayActivity(time='2:00 PM', activity='Explore + George Street and local shops', location='Bridgetown', notes='Pick up souvenirs + and local crafts.'), DayActivity(time='4:00 PM', activity='Relax at Pebbles + Beach', location='Pebbles Beach', notes='Enjoy swimming and sunbathing.'), + DayActivity(time='6:00 PM', activity='Dinner at The Cliff', location='St. + James', notes='Reservations recommend\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for your family vacation in Barbados, focusing + on beach activities and cultural experiences:\\n\\n### Trip Title: Beach Bliss + in Barbados: A 7-Day Tropical Escape\\n\\n#### **Day 1: Arrival and Beach + Day**\\n- **12:00 PM:** Check-in at Turtle Beach by Elegant Hotels. Enjoy + welcome drinks and settle in.\\n- **1:30 PM:** Lunch at the hotel restaurant. + Try the grilled fish with local spices.\\n- **3:00 PM:** Relax at Dover Beach. + Beach chairs and umbrellas available.\\n- **6:00 PM:** Enjoy a sunset viewing + at Dover Beach\u2014perfect for photos.\\n- **7:30 PM:** Dinner at The Oistins + Fish Fry. Vibrant atmosphere with fresh seafood.\\n\\n#### **Day 2: Explore + Bridgetown**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** + Visit the Barbados Museum \\u0026 Historical Society. Learn about the island's + history.\\n- **12:00 PM:** Lunch at Brown Sugar. Taste local dishes.\\n- **2:00 + PM:** Explore George Street and local shops for souvenirs.\\n- **4:00 PM:** + Relax at Pebbles Beach. Enjoy swimming and sunbathing.\\n- **6:00 PM:** Dinner + at The Cliff. Stunning ocean views, reservations recommended.\\n\\n#### **Day + 3: Catamaran Adventure**\\n- **7:30 AM:** Breakfast at Turtle Beach.\\n- **9:00 + AM:** Catamaran cruise from Bridgetown. Swim with turtles and snorkel at coral + reefs.\\n- **12:30 PM:** Lunch on board the catamaran.\\n- **3:00 PM:** Return + to the hotel, relax at the beach or pool.\\n- **7:00 PM:** Dinner at The Round + House in Bathsheba. Try local fish dishes.\\n\\n#### **Day 4: Beach Hopping**\\n- + **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** Visit Crane Beach. + Famous for its pink sand.\\n- **12:00 PM:** Lunch at The Crane Beach Resort.\\n- + **2:00 PM:** Head to Bottom Bay Beach. Less crowded and perfect for relaxation.\\n- + **5:00 PM:** Return to hotel.\\n- **7:30 PM:** Dinner at Naru Restaurant and + Lounge. Local and Asian fusion cuisine.\\n\\n#### **Day 5: Island Culture + and Relaxation**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **10:00 AM:** + Visit St. Nicholas Abbey. Tour the plantation and rum distillery.\\n- **1:00 + PM:** Lunch at the A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4121\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"842\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4963\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vSd7s42xrTw=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894311147000\",\"endTimeUnixNano\":\"1763041898739189000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"932\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"22\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"954\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"dkkP9YWRUaI=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041898739699000\",\"endTimeUnixNano\":\"1763041900553722000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"jB510DMs6/8=\",\"parentSpanId\":\"saPJCTZOa8E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910186602000\",\"endTimeUnixNano\":\"1763041910919083000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"I4smyApmv2I=\",\"parentSpanId\":\"gjU8x51ljN8=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910919911000\",\"endTimeUnixNano\":\"1763041912227844000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wsif3cTB5R0=\",\"parentSpanId\":\"vW7dC7113KM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041916984585000\",\"endTimeUnixNano\":\"1763041923078888000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"T263X02AHSc=\",\"parentSpanId\":\"dkkP9YWRUaI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041899242488000\",\"endTimeUnixNano\":\"1763041900545636000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wJnvML6OlKo=\",\"parentSpanId\":\"0revCekYick=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041927471141000\",\"endTimeUnixNano\":\"1763041968276800000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: beaches\\n- Weather: Current temperature 27.4\xB0C, mainly clear + conditions. Forecast: mostly warm weather with some rain expected later in + the week.\\n- Destination Info: Barbados is an island country in the Caribbean + located in the Atlantic Ocean. It is part of the Lesser Antilles of the West + Indies and the easternmost island of the Caribbean region. It lies on the + boundary of the South American and Caribbean plates. Its capital and largest + city is Bridgetown.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and beaches interests.\\nEach day should have 3-5 + activities with specific times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS25L4VnHyasIegXuwEirm30SBWf\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2288\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1717\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"571\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Beach + Bliss in Barbados: A 7-Day Tropical Escape\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Beach Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at hotel\\\",\\\"location\\\":\\\"Turtle Beach by Elegant Hotels\\\",\\\"notes\\\":\\\"Enjoy + welcome drinks and settle into your room.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Try + the grilled fish with local spices.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at Dover Beach\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Beach + chairs and umbrellas available for rent.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Sunset + viewing\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Perfect + spot for photos.\\\"},{\\\"time\\\":\\\"7:30 PM\\\",\\\"activity\\\":\\\"Dinner + at The Oistins Fish Fry\\\",\\\"location\\\":\\\"Oistins\\\",\\\"notes\\\":\\\"A + vibrant atmosphere with fresh seafood.\\\"}],\\\"meals\\\":[\\\"Lunch at Turtle + Beach\\\",\\\"Dinner at Oistins Fish Fry\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Explore + Bridgetown\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Buffet + style with local and international options.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + the Barbados Museum \\u0026 Historical Society\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Learn + about the island's history.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Brown Sugar\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Taste + local dishes in an outdoor setting.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + George Street and local shops\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Pick + up souvenirs and local crafts.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Relax + at Pebbles Beach\\\",\\\"location\\\":\\\"Pebbles Beach\\\",\\\"notes\\\":\\\"Enjoy + swimming and sunbathing.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Cliff\\\",\\\"location\\\":\\\"St. James\\\",\\\"notes\\\":\\\"Reservations + recommended for stunning ocean views.\\\"}],\\\"meals\\\":[\\\"Breakfast at + Turtle Beach\\\",\\\"Lunch at Brown Sugar\\\",\\\"Dinner at The Cliff\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '79035' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_duration_filter.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_duration_filter.yaml new file mode 100644 index 0000000..e250d51 --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_duration_filter.yaml @@ -0,0 +1,5248 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B+duration+%3E%3D+100ms+%7D&limit=10 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}},{"traceID":"b37b4c7727a54482f8c71cb88799c108","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042214208334000","durationMs":74124,"spanSet":{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18},"spanSets":[{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18}],"serviceStats":{"travel-agent-demo2":{"spanCount":18}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"68014","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Vary: + - Accept-Encoding + content-length: + - '6560' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/bec9c8df1c3a22a134e4c9c7aa0f0ce3 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"htO31/xjQN0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458122243000\",\"endTimeUnixNano\":\"1763042536895402000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"0hFkYEm0pAA=\",\"parentSpanId\":\"htO31/xjQN0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458123662000\",\"endTimeUnixNano\":\"1763042536895316000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"SZQWdqnT86M=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458125576000\",\"endTimeUnixNano\":\"1763042460061974000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"933\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"956\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"LhJKSMoSSOA=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042460062781000\",\"endTimeUnixNano\":\"1763042461638134000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"j4A8EPQuGCg=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042461639066000\",\"endTimeUnixNano\":\"1763042463839211000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"800\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"850\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ULgV+UrP/qI=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463839867000\",\"endTimeUnixNano\":\"1763042466936364000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"rU40hFuwoTM=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463840073000\",\"endTimeUnixNano\":\"1763042466936520000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"t17Kam4h9+E=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466938646000\",\"endTimeUnixNano\":\"1763042470405151000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.completion.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.3.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"437\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"116\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"553\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"7g4u8KYJLAU=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406246000\",\"endTimeUnixNano\":\"1763042474022207000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"yCwOkiG7rZ4=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406582000\",\"endTimeUnixNano\":\"1763042474022257000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"suvbAlwFQxE=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406864000\",\"endTimeUnixNano\":\"1763042474022284000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"kK2HJo7iF1s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470407130000\",\"endTimeUnixNano\":\"1763042474022309000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"hqoFE9rpZHw=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042474023255000\",\"endTimeUnixNano\":\"1763042479037529000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2709\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"3q+1aP5st6s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042479037941000\",\"endTimeUnixNano\":\"1763042521886451000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"FSS1aMtuo4g=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042521888311000\",\"endTimeUnixNano\":\"1763042536893685000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4ab7f848195ada04713bd68e3dc\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Exploring + the Wonders of New Zealand', destination='New Zealand', duration_days=7, total_budget_estimate='$1,500', + daily_plans=[DayPlan(day_number=1, date='2023-10-01', title='Arrival in Auckland', + activities=[DayActivity(time='09:00 AM', activity='Arrive at Auckland Airport', + location='Auckland Airport', notes='Collect your rental car for the week.'), + DayActivity(time='10:00 AM', activity='Check into Accommodation', location='SkyCity + Hotel', notes='Located in the city center, convenient for exploring.'), DayActivity(time='11:30 + AM', activity='Visit Auckland War Memorial Museum', location='Auckland Domain', + notes='Explore New Zealand\u2019s cultural heritage and natural history.'), + DayActivity(time='02:00 PM', activity='Lunch at Tom Tom Bar \\u0026 Eatery', + location='SkyCity', notes='Enjoy a relaxing meal with views of the city.'), + DayActivity(time='03:30 PM', activity='Walk around Viaduct Harbour', location='Viaduct + Harbour', notes='Stroll along the waterfront and enjoy the vibrant atmosphere.'), + DayActivity(time='06:30 PM', activity='Dinner at Depot Eatery', location='Federal + Street, Auckland', notes='Experience local New Zealand cuisine.')], meals=['Lunch + at Tom Tom Bar \\u0026 Eatery', 'Dinner at Depot Eatery'], accommodation='SkyCity + Hotel, Auckland'), DayPlan(day_number=2, date='2023-10-02', title='Exploring + the Bay of Islands', activities=[DayActivity(time='07:00 AM', activity='Drive + to Bay of Islands', location='Bay of Islands', notes='Approx. 3 hours drive, + enjoy scenic views on the way.'), DayActivity(time='10:30 AM', activity='Take + a Bay of Islands Cruise', location='Paihia Wharf', notes='Explore the stunning + islands and spot marine wildlife.'), DayActivity(time='01:00 PM', activity='Lunch + at The Gables Restaurant', location='Russell', notes='Try fresh seafood and + local dishes.'), DayActivity(time='03:00 PM', activity='Visit Waitangi Treaty + Grounds', location='Waitangi', notes=\\\"Learn about New Zealand's history + an\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for a romantic cultural vacation in New Zealand, + tailored to your interests:\\n\\n### Exploring the Wonders of New Zealand\\n\\n#### + **Day 1: Arrival in Auckland**\\n- **Morning**\\n - Arrive at Auckland Airport\\n + \ - Check into SkyCity Hotel, centrally located for easy exploration.\\n- + **Afternoon**\\n - Visit Auckland War Memorial Museum: Delve into New Zealand\u2019s + cultural heritage.\\n - Lunch at Tom Tom Bar \\u0026 Eatery: Enjoy city views.\\n- + **Evening**\\n - Walk around Viaduct Harbour: Vibrant waterfront stroll.\\n + \ - Dinner at Depot Eatery: Experience local cuisine.\\n\\n#### **Day 2: Exploring + the Bay of Islands**\\n- **Morning**\\n - Drive to Bay of Islands: Scenic + 3-hour journey.\\n - Take a Bay of Islands Cruise: Explore islands and marine + wildlife.\\n- **Afternoon**\\n - Lunch at The Gables Restaurant: Fresh local + seafood.\\n - Visit Waitangi Treaty Grounds: Learn about New Zealand's history.\\n- + **Evening**\\n - Return to Auckland.\\n - Dinner at The Glasshouse.\\n\\n#### + **Day 3: Wellington - The Capital**\\n- **Morning**\\n - Drive to Wellington: + Enjoy the scenic route.\\n- **Afternoon**\\n - Lunch at The Boatshed Cafe.\\n + \ - Visit Te Papa Tongarewa (Museum of New Zealand): Explore national history.\\n- + **Evening**\\n - Cable Car Ride to Kelburn: City views.\\n - Dinner at Logan + Brown: Fine dining.\\n\\n#### **Day 4: Nature and Culture in Wellington**\\n- + **Morning**\\n - Wellington Botanic Garden: Peaceful morning walk.\\n - + Explore Zealandia Ecosanctuary: Discover unique wildlife.\\n- **Afternoon**\\n + \ - Lunch at The Ramen Shop.\\n - Visit the National Portrait Gallery.\\n- + **Evening**\\n - Dinner at The Old Bailey.\\n\\n#### **Day 5: Travel to Queenstown**\\n- + **Early Morning**\\n - Fly from Wellington to Queenstown.\\n- **Morning**\\n + \ - Check into Center City Apartments.\\n - Skyline Gondola Ride: Panoramic + views.\\n- **Afternoon**\\n - Lunch at Stratosfare Restaurant: Mountain views.\\n + \ - Explore Queenstown Gardens.\\n- **Evening**\\n - Jet Boating on Lake + Wakatipu.\\n - Dinner at Fergburger.\\n\\n#### **Day 6: Adventure in Queenstown**\\n- + **Morning**\\n - \"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4669\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"694\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5363\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xp8+s75qaoQ=\",\"parentSpanId\":\"LhJKSMoSSOA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042460566475000\",\"endTimeUnixNano\":\"1763042461631027000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xTNGMbJ8o4w=\",\"parentSpanId\":\"ULgV+UrP/qI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042464944178000\",\"endTimeUnixNano\":\"1763042466058265000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"cp8E6e04/1g=\",\"parentSpanId\":\"rU40hFuwoTM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466061655000\",\"endTimeUnixNano\":\"1763042466934165000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"vHsnrxC0dGw=\",\"parentSpanId\":\"7g4u8KYJLAU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042470916507000\",\"endTimeUnixNano\":\"1763042471857859000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"wieBZmgqMfE=\",\"parentSpanId\":\"yCwOkiG7rZ4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042471863066000\",\"endTimeUnixNano\":\"1763042472795187000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"KvPdWQGWzrM=\",\"parentSpanId\":\"suvbAlwFQxE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042472796856000\",\"endTimeUnixNano\":\"1763042473492982000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"YDcPBs0N6BQ=\",\"parentSpanId\":\"kK2HJo7iF1s=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042473499558000\",\"endTimeUnixNano\":\"1763042474021224000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Australia\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ZxRbtS6dkJI=\",\"parentSpanId\":\"3q+1aP5st6s=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042479555737000\",\"endTimeUnixNano\":\"1763042521884511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: culture, nature\\n- Weather: Current temperature is 7.5\xB0C and + overcast. Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected + on certain days.\\n- Destination Info: New Zealand is an island country in + the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the moderate budget level and culture, + nature interests.\\nEach day should have 3-5 activities with specific times, + locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbSAyeprdNroIr4yr884B5SquCIU0\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2320\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1726\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"594\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Exploring + the Wonders of New Zealand\\\",\\\"destination\\\":\\\"New Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + your rental car for the week.\\\"},{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into Accommodation\\\",\\\"location\\\":\\\"SkyCity Hotel\\\",\\\"notes\\\":\\\"Located + in the city center, convenient for exploring.\\\"},{\\\"time\\\":\\\"11:30 + AM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Auckland + Domain\\\",\\\"notes\\\":\\\"Explore New Zealand\u2019s cultural heritage + and natural history.\\\"},{\\\"time\\\":\\\"02:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"SkyCity\\\",\\\"notes\\\":\\\"Enjoy + a relaxing meal with views of the city.\\\"},{\\\"time\\\":\\\"03:30 PM\\\",\\\"activity\\\":\\\"Walk + around Viaduct Harbour\\\",\\\"location\\\":\\\"Viaduct Harbour\\\",\\\"notes\\\":\\\"Stroll + along the waterfront and enjoy the vibrant atmosphere.\\\"},{\\\"time\\\":\\\"06:30 + PM\\\",\\\"activity\\\":\\\"Dinner at Depot Eatery\\\",\\\"location\\\":\\\"Federal + Street, Auckland\\\",\\\"notes\\\":\\\"Experience local New Zealand cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"Dinner at Depot Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + the Bay of Islands\\\",\\\"activities\\\":[{\\\"time\\\":\\\"07:00 AM\\\",\\\"activity\\\":\\\"Drive + to Bay of Islands\\\",\\\"location\\\":\\\"Bay of Islands\\\",\\\"notes\\\":\\\"Approx. + 3 hours drive, enjoy scenic views on the way.\\\"},{\\\"time\\\":\\\"10:30 + AM\\\",\\\"activity\\\":\\\"Take a Bay of Islands Cruise\\\",\\\"location\\\":\\\"Paihia + Wharf\\\",\\\"notes\\\":\\\"Explore the stunning islands and spot marine wildlife.\\\"},{\\\"time\\\":\\\"01:00 + PM\\\",\\\"activity\\\":\\\"Lunch at The Gables Restaurant\\\",\\\"location\\\":\\\"Russell\\\",\\\"notes\\\":\\\"Try + fresh seafood and local dishes.\\\"},{\\\"time\\\":\\\"03:00 PM\\\",\\\"activity\\\":\\\"Visit + Waitangi Treaty Grounds\\\",\\\"location\\\":\\\"Waitangi\\\",\\\"notes\\\":\\\"Learn + about New Zealand's history and culture.\\\"},{\\\"time\\\":\\\"05:30 PM\\\",\\\"activity\\\":\\\"Return + to Auckland\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Relax + in the car or stop for coffee on the way.\\\"},{\\\"time\\\":\\\"07:3\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '88742' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/6ce0a0129015a826c7f54b78275cfe37 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"QM3dFI3l52g=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290335056000\",\"endTimeUnixNano\":\"1763042456116415000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"3iOop76o3Sw=\",\"parentSpanId\":\"QM3dFI3l52g=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290336958000\",\"endTimeUnixNano\":\"1763042456116320000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"BGNWa2Lx+H4=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290337931000\",\"endTimeUnixNano\":\"1763042291996182000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"58\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"523\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bpkI8o2juJI=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042291997852000\",\"endTimeUnixNano\":\"1763042294883864000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"FWUQD7dWK24=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042291998533000\",\"endTimeUnixNano\":\"1763042294884045000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"JxMUY8xtBSU=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042294885529000\",\"endTimeUnixNano\":\"1763042317534957000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"For + an adventurous trip, I've selected two destinations known for thrilling experiences: + **Chile** in South America and **Tajikistan** in Central Asia. Let's explore + these destinations further to plan your exciting itinerary.\\n\\n### Chile\\n- + **Capital**: Santiago\\n- **Language**: Spanish\\n- **Currency**: Chilean + Peso (CLP)\\n- **Time Zone**: UTC-06:00 to UTC-04:00\\n\\n### Tajikistan\\n- + **Capital**: Dushanbe\\n- **Language**: Tajik, Russian\\n- **Currency**: Tajikistani + Somoni (TJS)\\n- **Time Zone**: UTC+05:00\\n\\nI'll gather the weather information + and then craft a detailed itinerary for you.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"945\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"213\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1158\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"OnwfJc+G7eA=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042317535695000\",\"endTimeUnixNano\":\"1763042321467468000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"zVBafqJLSVU=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042317535898000\",\"endTimeUnixNano\":\"1763042321467528000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"t+rxwgGXbbg=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042321470042000\",\"endTimeUnixNano\":\"1763042324279616000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1194\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"92\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1286\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"cOiJesC5V+c=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042324280282000\",\"endTimeUnixNano\":\"1763042326821781000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"VHh495GUkl0=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042324280617000\",\"endTimeUnixNano\":\"1763042326822084000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"QcXOYcnb1as=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042326824312000\",\"endTimeUnixNano\":\"1763042328899504000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1518\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"58\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1576\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"q9X9jhj0kbo=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042328900052000\",\"endTimeUnixNano\":\"1763042332069522000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bKmi3eZoF9E=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042328900188000\",\"endTimeUnixNano\":\"1763042332069569000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"pQWL2XkRjNE=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042332070368000\",\"endTimeUnixNano\":\"1763042337546943000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418af3c8190b5314c9f212bff34\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418cdf8819087ab8a397842e1ba\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Santiago, Chile' info=DestinationInfo(title='Santiago', + summary='Capital and largest city of Chile', extract=\\\"Santiago, also known + as Santiago de Chile, is the capital and largest city of Chile and one of + the largest cities in the Americas. Located in the Chilean Central Valley, + it anchors its namesake Santiago Metropolitan Region representing 40% of Chile's + total population. Most of the city is situated between 500\u2013650\\\\xa0m + (1,640\u20132,133\\\\xa0ft) above sea level.\\\")\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.17.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Dushanbe, Tajikistan' info=DestinationInfo(title='Dushanbe', + summary='Capital and largest city of Tajikistan', extract='Dushanbe is the + capital and largest city of Tajikistan. As of February\\\\xa02023, Dushanbe + had a population of 1,228,400, with this population being largely Tajik. Until + 1929, the city was known in Russian as Dyushambe, and from 1929 to 1961 as + Stalinabad, after Joseph Stalin. Dushanbe is located in the Gissar Valley, + bounded by the Gissar Range in the north and east and the Babatag, Aktau, + Rangontau and Karatau mountains in the south, and has an elevation of 750\u2013930 + m. The city is divided into four districts: Ismail Samani, Avicenna, Ferdowsi, + and Shah Mansur.')\"}},{\"key\":\"gen_ai.prompt.17.tool_call_id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Santiago, + Chile\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 24\xB0C with partly cloudy conditions. Upcoming days will be + mostly clear with temperatures ranging from 26\xB0C to 34\xB0C.\\\",\\\"destination_details\\\":\\\"Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_VD4AdDcXmJyed5FWcjWG7Ikt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\\",\\\"destination_details\\\":\\\"Dushanbe + is the capital and largest city of Tajikistan. It is located in the Gissar + Valley, bounded by mountainous terrains, and has a population of over 1 million + people.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_lid7TRD6rOxaEhIq6ISjqGG2\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1702\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"288\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1990\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"/iqJRoiO3Hs=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042337548317000\",\"endTimeUnixNano\":\"1763042433336198000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"dQSecaXxjXM=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042337548704000\",\"endTimeUnixNano\":\"1763042433336329000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"Gic8k6ZyUjM=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042433338440000\",\"endTimeUnixNano\":\"1763042456109947000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418af3c8190b5314c9f212bff34\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418cdf8819087ab8a397842e1ba\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Santiago, Chile' info=DestinationInfo(title='Santiago', + summary='Capital and largest city of Chile', extract=\\\"Santiago, also known + as Santiago de Chile, is the capital and largest city of Chile and one of + the largest cities in the Americas. Located in the Chilean Central Valley, + it anchors its namesake Santiago Metropolitan Region representing 40% of Chile's + total population. Most of the city is situated between 500\u2013650\\\\xa0m + (1,640\u20132,133\\\\xa0ft) above sea level.\\\")\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.17.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Dushanbe, Tajikistan' info=DestinationInfo(title='Dushanbe', + summary='Capital and largest city of Tajikistan', extract='Dushanbe is the + capital and largest city of Tajikistan. As of February\\\\xa02023, Dushanbe + had a population of 1,228,400, with this population being largely Tajik. Until + 1929, the city was known in Russian as Dyushambe, and from 1929 to 1961 as + Stalinabad, after Joseph Stalin. Dushanbe is located in the Gissar Valley, + bounded by the Gissar Range in the north and east and the Babatag, Aktau, + Rangontau and Karatau mountains in the south, and has an elevation of 750\u2013930 + m. The city is divided into four districts: Ismail Samani, Avicenna, Ferdowsi, + and Shah Mansur.')\"}},{\"key\":\"gen_ai.prompt.17.tool_call_id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e41d98b08190a0e7d230b49ad8ac\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Santiago, + Chile\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 24\xB0C with partly cloudy conditions. Upcoming days will be + mostly clear with temperatures ranging from 26\xB0C to 34\xB0C.\\\",\\\"destination_details\\\":\\\"Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e41fb6448190bca146180572c7a7\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\\",\\\"destination_details\\\":\\\"Dushanbe + is the capital and largest city of Tajikistan. It is located in the Gissar + Valley, bounded by mountainous terrains, and has a population of over 1 million + people.\\\"}\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Santiago, Chile' itinerary=TravelItinerary(trip_title='Adventurous + Santiago: A 7-Day Exploration', destination='Santiago, Chile', duration_days=7, + total_budget_estimate='$800-$1000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Santiago', activities=[DayActivity(time='10:00 AM', activity='Arrive + at Santiago International Airport', location='Santiago International Airport', + notes='Pick up rental car or take a taxi to the accommodation.'), DayActivity(time='11:30 + AM', activity='Check-in to accommodation', location='Hotel Plaza El Bosque', + notes='Moderate budget, centrally located.'), DayActivity(time='1:00 PM', + activity='Lunch at Liguria', location='Liguria Restaurant', notes='Try the + local seafood dishes.'), DayActivity(time='3:00 PM', activity='Walk around + Plaza de Armas', location='Plaza de Armas', notes='Explore the historic heart + of Santiago.'), DayActivity(time='5:00 PM', activity='Visit Cerro Santa Lucia', + location='Cerro Santa Lucia', notes='Enjoy panoramic views of the city.')], + meals=['Lunch at Liguria', 'Dinner at La Piojera'], accommodation='Hotel Plaza + El Bosque'), DayPlan(day_number=2, date='2023-10-02', title='Cajon del Maipo + Adventure', activities=[DayActivity(time='8:00 AM', activity='Breakfast at + the hotel', location='Hotel Plaza El Bosque', notes='Enjoy a hearty breakfast.'), + DayActivity(time='9:00 AM', activity='Depart for Cajon del Maipo', location='Cajon + del Maipo', notes='A beautiful area for outdoor activities.'), DayActivity(time='10:30 + AM', activity='Hiking in the El Morado National Monument', location='El Morado', + notes='Moderate hike with stunning views.'), DayActivity(time='1:00 PM', activity='Picnic + lunch in nature', location='El Morado', notes='Pack a lunch to enjoy in the + outdoors.'), DayActivity(time='3:00 PM', activity='Visit Embalse El Yeso', + location='Embalse El Yeso', notes='Take photos and enjoy the scenery.'), DayActivity(time='5:00 + PM', activity='Return to Santiago', location='Santiago', notes='R\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_VD4AdDcXmJyed5FWcjWG7Ikt\"}},{\"key\":\"gen_ai.prompt.21.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.21.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Dushanbe, Tajikistan' itinerary=TravelItinerary(trip_title='Adventure + Awaits in Dushanbe', destination='Dushanbe, Tajikistan', duration_days=7, + total_budget_estimate='$700', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and City Exploration', activities=[DayActivity(time='09:00 + AM', activity='Arrive in Dushanbe', location='Dushanbe International Airport', + notes='Transfer to hotel via taxi or arranged pickup.'), DayActivity(time='10:30 + AM', activity='Check-in and freshen up', location='Hotel Atlas Dushanbe', + notes='Moderate hotel with good reviews.'), DayActivity(time='12:00 PM', activity='Lunch + at Restaurant Shodlik', location='Shodlik Restaurant', notes='Try local dishes + like Plov and Shashlik.'), DayActivity(time='01:30 PM', activity='Visit the + National Museum of Tajikistan', location='Dushanbe', notes='Explore Tajik + history and culture.'), DayActivity(time='03:30 PM', activity='Walk around + Rudaki Park', location='Rudaki Park', notes='Enjoy the greenery and relax.'), + DayActivity(time='06:00 PM', activity='Dinner at Restaurant Dushanbe', location='Restaurant + Dushanbe', notes='Known for traditional Tajik cuisine.')], meals=['Lunch at + Shodlik', 'Dinner at Restaurant Dushanbe'], accommodation='Hotel Atlas Dushanbe'), + DayPlan(day_number=2, date='2023-10-02', title='Adventure in the Mountains', + activities=[DayActivity(time='08:00 AM', activity='Breakfast at the hotel', + location='Hotel Atlas Dushanbe', notes='Start your day with a hearty breakfast.'), + DayActivity(time='09:00 AM', activity='Day trip to Fann Mountains', location='Fann + Mountains', notes='Hire a local guide for an adventure hike.'), DayActivity(time='12:30 + PM', activity='Picnic lunch at Alaudin Lakes', location='Alaudin Lakes', notes='Pack + lunch from the hotel.'), DayActivity(time='02:00 PM', activity='Hiking around + the lakes', location='Alaudin Lakes', notes='Enjoy stunning views and take + photos.'), DayActivity(time='05:00 PM', activity='Return to Dushanbe', location='Dushanbe',\"}},{\"key\":\"gen_ai.prompt.21.tool_call_id\",\"value\":{\"stringValue\":\"call_lid7TRD6rOxaEhIq6ISjqGG2\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are two thrilling itineraries tailor-made for your adventurous spirit. You + can choose between Santiago, Chile, known for its vibrant city life and stunning + natural landscapes, or Dushanbe, Tajikistan, offering untouched natural beauty + and rich cultural experiences.\\n\\n### Santiago, Chile: Adventurous Exploration + (7 Days)\\n**Highlights:**\\n- Explore vibrant city life in Santiago, including + cultural sites like Plaza de Armas and Cerro Santa Lucia.\\n- Experience the + thrill of hiking in Cajon del Maipo and El Morado National Monument.\\n- Enjoy + a day trip to colorful Valparaiso.\\n- Taste Chilean wines on a Maipo Valley + wine tour.\\n- Adventure in the Andes Mountains with skiing or hiking.\\n\\n**Estimated + Budget:** $800-$1000\\n\\n**Travel Tips:** Learn some basic Spanish phrases, + and always carry water for outdoor activities.\\n\\n**Packing Suggestions:** + Lightweight clothing, comfortable hiking shoes, and sun protection.\\n\\n### + Dushanbe, Tajikistan: Adventure in Nature (7 Days)\\n**Highlights:**\\n- Discover + Dushanbe's cultural sites, including the National Museum and Rudaki Park.\\n- + Embark on an adventurous day in the Fann Mountains with hiking and exploring + the Alaudin Lakes.\\n- Enjoy rafting and hiking in Varzob Valley.\\n- Trek + in the majestic Pamir Mountains to Lake Sarez.\\n\\n**Estimated Budget:** + $700\\n\\n**Travel Tips:** Learn basic Tajik phrases, carry cash, and respect + local traditions.\\n\\n**Packing Suggestions:** Lightweight, layered clothing, + comfortable hiking shoes, and sunscreen.\\n\\nBoth itineraries promise adventure + and memorable experiences. Let me know if you have any preferences or need + further assistance!\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"7540\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"333\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7873\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"flp6zhR87z8=\",\"parentSpanId\":\"bpkI8o2juJI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042292502514000\",\"endTimeUnixNano\":\"1763042293711707000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Asia\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"8pVEfcKzjl0=\",\"parentSpanId\":\"FWUQD7dWK24=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042293718002000\",\"endTimeUnixNano\":\"1763042294872800000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"r7fWWieyOBU=\",\"parentSpanId\":\"OnwfJc+G7eA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042318640277000\",\"endTimeUnixNano\":\"1763042320464533000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Santiago%2C+Chile\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"HtDo/cYr/Zg=\",\"parentSpanId\":\"zVBafqJLSVU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042320470625000\",\"endTimeUnixNano\":\"1763042321464327000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Dushanbe%2C+Tajikistan\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"Vk5JbW85DaI=\",\"parentSpanId\":\"cOiJesC5V+c=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042324782420000\",\"endTimeUnixNano\":\"1763042325888098000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-33.4377756\\u0026longitude=-70.6504502\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bvgm7G6N5UQ=\",\"parentSpanId\":\"VHh495GUkl0=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042325892104000\",\"endTimeUnixNano\":\"1763042326819385000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=38.5856814\\u0026longitude=68.760331\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"k4ESLnjIntM=\",\"parentSpanId\":\"q9X9jhj0kbo=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042329402505000\",\"endTimeUnixNano\":\"1763042329932028000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Santiago,%20Chile\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"OPn/NLRb7OU=\",\"parentSpanId\":\"bKmi3eZoF9E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042329932776000\",\"endTimeUnixNano\":\"1763042332067863000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Dushanbe,%20Tajikistan\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"7BjV1KWqCGg=\",\"parentSpanId\":\"/iqJRoiO3Hs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042338068561000\",\"endTimeUnixNano\":\"1763042378358074000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Santiago, + Chile.\\n\\nTrip Details:\\n- Destination: Santiago, Chile\\n- Duration: 7 + days\\n- Budget: moderate\\n- Interests: adventure\\n- Weather: Current temperature + is 24\xB0C with partly cloudy conditions. Upcoming days will be mostly clear + with temperatures ranging from 26\xB0C to 34\xB0C.\\n- Destination Info: Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and adventure interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS8gIwmKuNXg8IbIbSADLWloOWdb\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2336\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1737\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"599\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Adventurous + Santiago: A 7-Day Exploration\\\",\\\"destination\\\":\\\"Santiago, Chile\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$800-$1000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Santiago\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Santiago International Airport\\\",\\\"location\\\":\\\"Santiago International + Airport\\\",\\\"notes\\\":\\\"Pick up rental car or take a taxi to the accommodation.\\\"},{\\\"time\\\":\\\"11:30 + AM\\\",\\\"activity\\\":\\\"Check-in to accommodation\\\",\\\"location\\\":\\\"Hotel + Plaza El Bosque\\\",\\\"notes\\\":\\\"Moderate budget, centrally located.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Liguria\\\",\\\"location\\\":\\\"Liguria + Restaurant\\\",\\\"notes\\\":\\\"Try the local seafood dishes.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Walk around Plaza de Armas\\\",\\\"location\\\":\\\"Plaza + de Armas\\\",\\\"notes\\\":\\\"Explore the historic heart of Santiago.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Visit Cerro Santa Lucia\\\",\\\"location\\\":\\\"Cerro + Santa Lucia\\\",\\\"notes\\\":\\\"Enjoy panoramic views of the city.\\\"}],\\\"meals\\\":[\\\"Lunch + at Liguria\\\",\\\"Dinner at La Piojera\\\"],\\\"accommodation\\\":\\\"Hotel + Plaza El Bosque\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Cajon + del Maipo Adventure\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Hotel Plaza El Bosque\\\",\\\"notes\\\":\\\"Enjoy + a hearty breakfast.\\\"},{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Depart + for Cajon del Maipo\\\",\\\"location\\\":\\\"Cajon del Maipo\\\",\\\"notes\\\":\\\"A + beautiful area for outdoor activities.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Hiking + in the El Morado National Monument\\\",\\\"location\\\":\\\"El Morado\\\",\\\"notes\\\":\\\"Moderate + hike with stunning views.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Picnic + lunch in nature\\\",\\\"location\\\":\\\"El Morado\\\",\\\"notes\\\":\\\"Pack + a lunch to enjoy in the outdoors.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + Embalse El Yeso\\\",\\\"location\\\":\\\"Embalse El Yeso\\\",\\\"notes\\\":\\\"Take + photos and enjoy the scenery.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to Santiago\\\",\\\"location\\\":\\\"Santiago\\\",\\\"notes\\\":\\\"Relax + after a day of adventure.\\\"}],\\\"meals\\\":[\\\"Breakfast at the hotel\\\",\\\"Picnic + lunch\\\",\\\"Dinner at Los Buenos Muchachos\\\"],\\\"accommodation\\\":\\\"Hotel + Plaza El Bosque\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"cioloVIWits=\",\"parentSpanId\":\"dQSecaXxjXM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042378370827000\",\"endTimeUnixNano\":\"1763042433334128000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Dushanbe, + Tajikistan.\\n\\nTrip Details:\\n- Destination: Dushanbe, Tajikistan\\n- Duration: + 7 days\\n- Budget: moderate\\n- Interests: adventure\\n- Weather: Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\n- + Destination Info: Dushanbe is the capital and largest city of Tajikistan. + It is located in the Gissar Valley, bounded by mountainous terrains, and has + a population of over 1 million people.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and adventure interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS9Lz3AjDms2dEht5anB36agIYPs\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2499\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1923\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"576\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Adventure + Awaits in Dushanbe\\\",\\\"destination\\\":\\\"Dushanbe, Tajikistan\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$700\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and City Exploration\\\",\\\"activities\\\":[{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Dushanbe\\\",\\\"location\\\":\\\"Dushanbe International Airport\\\",\\\"notes\\\":\\\"Transfer + to hotel via taxi or arranged pickup.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Check-in + and freshen up\\\",\\\"location\\\":\\\"Hotel Atlas Dushanbe\\\",\\\"notes\\\":\\\"Moderate + hotel with good reviews.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Restaurant Shodlik\\\",\\\"location\\\":\\\"Shodlik Restaurant\\\",\\\"notes\\\":\\\"Try + local dishes like Plov and Shashlik.\\\"},{\\\"time\\\":\\\"01:30 PM\\\",\\\"activity\\\":\\\"Visit + the National Museum of Tajikistan\\\",\\\"location\\\":\\\"Dushanbe\\\",\\\"notes\\\":\\\"Explore + Tajik history and culture.\\\"},{\\\"time\\\":\\\"03:30 PM\\\",\\\"activity\\\":\\\"Walk + around Rudaki Park\\\",\\\"location\\\":\\\"Rudaki Park\\\",\\\"notes\\\":\\\"Enjoy + the greenery and relax.\\\"},{\\\"time\\\":\\\"06:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Restaurant Dushanbe\\\",\\\"location\\\":\\\"Restaurant Dushanbe\\\",\\\"notes\\\":\\\"Known + for traditional Tajik cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Shodlik\\\",\\\"Dinner + at Restaurant Dushanbe\\\"],\\\"accommodation\\\":\\\"Hotel Atlas Dushanbe\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Adventure + in the Mountains\\\",\\\"activities\\\":[{\\\"time\\\":\\\"08:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Hotel Atlas Dushanbe\\\",\\\"notes\\\":\\\"Start + your day with a hearty breakfast.\\\"},{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Day + trip to Fann Mountains\\\",\\\"location\\\":\\\"Fann Mountains\\\",\\\"notes\\\":\\\"Hire + a local guide for an adventure hike.\\\"},{\\\"time\\\":\\\"12:30 PM\\\",\\\"activity\\\":\\\"Picnic + lunch at Alaudin Lakes\\\",\\\"location\\\":\\\"Alaudin Lakes\\\",\\\"notes\\\":\\\"Pack + lunch from the hotel.\\\"},{\\\"time\\\":\\\"02:00 PM\\\",\\\"activity\\\":\\\"Hiking + around the lakes\\\",\\\"location\\\":\\\"Alaudin Lakes\\\",\\\"notes\\\":\\\"Enjoy + stunning views and take photos.\\\"},{\\\"time\\\":\\\"05:00 PM\\\",\\\"activity\\\":\\\"Return + to Dushanbe\\\",\\\"location\\\":\\\"Dushanbe\\\",\\\"notes\\\":\\\"Relax + after an adventurous day.\\\"},{\\\"time\\\":\\\"07:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Kebab House\\\",\\\"location\\\":\\\"Kebab House\\\",\\\"notes\\\":\\\"Savor + delicious kebabs and local drinks.\\\"}],\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '133017' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/b37b4c7727a54482f8c71cb88799c108 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"X6XgDzvu2/o=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214208334000\",\"endTimeUnixNano\":\"1763042288332434000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ykfIkleyfn8=\",\"parentSpanId\":\"X6XgDzvu2/o=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214208605000\",\"endTimeUnixNano\":\"1763042288332353000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"JhAH0yZx3Ik=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214215610000\",\"endTimeUnixNano\":\"1763042217450079000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"928\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"21\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"949\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"7Pd25D1LOvw=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042217450618000\",\"endTimeUnixNano\":\"1763042219069521000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"Un2+PGYQ9to=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042219072031000\",\"endTimeUnixNano\":\"1763042221139663000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1456\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"19\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1475\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"IbK2qPHFUEU=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042221140625000\",\"endTimeUnixNano\":\"1763042223209324000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"f1ybKu8yoWY=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042223210273000\",\"endTimeUnixNano\":\"1763042226350110000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1544\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"36\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1580\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"Mix/K/BkE/k=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042226350768000\",\"endTimeUnixNano\":\"1763042227769106000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ZIkq2QIEfJc=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042227770300000\",\"endTimeUnixNano\":\"1763042229857312000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1862\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"19\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1881\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"th//dB4A1jI=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042229857982000\",\"endTimeUnixNano\":\"1763042230935832000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"rnS972TaPFE=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042230937025000\",\"endTimeUnixNano\":\"1763042234891211000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b5b6d48194ac4ff233dc086dc6\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Bratislava' info=DestinationInfo(title='Bratislava', + summary='Capital and largest city of Slovakia', extract='Bratislava is the + capital and largest city of the Slovak Republic and the fourth largest of + all cities on the river Danube. Officially, the population of the city is + about 475,000; however, some sources estimate the daily number of people moving + around the city based on mobile phone SIM cards is more than 570,000. Bratislava + is in southwestern Slovakia at the foot of the Little Carpathians, occupying + both banks of the Danube and the left bank of the River Morava. The city is + situated on the border of three countries\u2014Slovakia, Austria, and Hungary\u2014and + is the only national capital to have land borders with two other sovereign + states. Its geographic position places it exceptionally close to the Austrian + capital Vienna, making them the closest pair of capital cities in Europe at + just 50 kilometres (31\\\\xa0mi) apart.')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"cultural + exploration, history, local cuisine\\\",\\\"weather_info\\\":\\\"Current temperature + is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\\",\\\"destination_details\\\":\\\"Bratislava is the + capital and largest city of Slovakia, known for its location by the Danube + River and proximity to Austria and Hungary. It's an important cultural, economic, + and educational center of the region.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_Ka1nJGRoPHD4PU7UUYNV3Gpi\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2097\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"136\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2233\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"4+Xf2IVfm8g=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042234891664000\",\"endTimeUnixNano\":\"1763042274301203000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"tlKdJZeE6c0=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042274303621000\",\"endTimeUnixNano\":\"1763042288331400000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b5b6d48194ac4ff233dc086dc6\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Bratislava' info=DestinationInfo(title='Bratislava', + summary='Capital and largest city of Slovakia', extract='Bratislava is the + capital and largest city of the Slovak Republic and the fourth largest of + all cities on the river Danube. Officially, the population of the city is + about 475,000; however, some sources estimate the daily number of people moving + around the city based on mobile phone SIM cards is more than 570,000. Bratislava + is in southwestern Slovakia at the foot of the Little Carpathians, occupying + both banks of the Danube and the left bank of the River Morava. The city is + situated on the border of three countries\u2014Slovakia, Austria, and Hungary\u2014and + is the only national capital to have land borders with two other sovereign + states. Its geographic position places it exceptionally close to the Austrian + capital Vienna, making them the closest pair of capital cities in Europe at + just 50 kilometres (31\\\\xa0mi) apart.')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b8467481948a834b801a722259\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"cultural + exploration, history, local cuisine\\\",\\\"weather_info\\\":\\\"Current temperature + is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\\",\\\"destination_details\\\":\\\"Bratislava is the + capital and largest city of Slovakia, known for its location by the Danube + River and proximity to Austria and Hungary. It's an important cultural, economic, + and educational center of the region.\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 5-day itinerary for Bratislava' itinerary=TravelItinerary(trip_title='Cultural + Journey Through Bratislava', destination='Bratislava', duration_days=5, total_budget_estimate='$800', + daily_plans=[DayPlan(day_number=1, date='2023-11-15', title='Arrival and Old + Town Exploration', activities=[DayActivity(time='10:00 AM', activity='Arrive + in Bratislava', location='Bratislava Airport', notes='Take a taxi or shuttle + to the city center.'), DayActivity(time='11:30 AM', activity='Check-in to + accommodation', location='Hotel Danubia', notes='Moderate hotel near the city + center.'), DayActivity(time='12:30 PM', activity='Lunch at Slovak Pub', location='Obchodn\xE1 + 62', notes='Try traditional Slovak dishes like bryndzov\xE9 halu\u0161ky.'), + DayActivity(time='2:00 PM', activity='Stroll through the Old Town', location='Bratislava + Old Town', notes=\\\"Visit St. Michael's Gate, Main Square, and the Old Town + Hall.\\\"), DayActivity(time='4:00 PM', activity='Visit the Bratislava City + Museum', location='Radni\u010Dn\xE1 1', notes=\\\"Learn about the city's history.\\\"), + DayActivity(time='6:00 PM', activity='Dinner at Flagship Restaurant', location='Hlavn\xE9 + n\xE1mestie 4', notes='Enjoy local cuisine with a modern twist.')], meals=['Lunch + at Slovak Pub', 'Dinner at Flagship Restaurant'], accommodation='Hotel Danubia'), + DayPlan(day_number=2, date='2023-11-16', title='Castles and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at hotel', location='Hotel Danubia', notes='Enjoy + a complimentary breakfast.'), DayActivity(time='9:30 AM', activity='Visit + Bratislava Castle', location='Bratislava Castle', notes='Explore the castle + and enjoy views of the Danube.'), DayActivity(time='12:00 PM', activity='Lunch + at Caf\xE9 23', location='Karpatsk\xE1 23', notes='A trendy caf\xE9 with local + dishes.'), DayActivity(time='1:30 PM', activity='Tour the Slovak National + Gallery', location='R\xE1zusovo n\xE1bre\u017Eie 2', notes='Explore Slovak + art and culture.'), DayActivity(time='4:00 PM', activity='Relax at Sad Janka + Kr\xE1\u013Ea park', location='\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_Ka1nJGRoPHD4PU7UUYNV3Gpi\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"I've + planned a 5-day cultural journey to Bratislava, Slovakia for you. Here's your + itinerary:\\n\\n### Cultural Journey Through Bratislava\\n\\n#### **Day 1: + Arrival and Old Town Exploration**\\n- **10:00 AM:** Arrive in Bratislava + - Shuttle or taxi to city center.\\n- **11:30 AM:** Check-in to Hotel Danubia.\\n- + **12:30 PM:** Lunch at Slovak Pub - Try bryndzov\xE9 halu\u0161ky.\\n- **2:00 + PM:** Stroll through the Old Town - Visit St. Michael's Gate.\\n- **4:00 PM:** + Visit the Bratislava City Museum.\\n- **6:00 PM:** Dinner at Flagship Restaurant.\\n\\n#### + **Day 2: Castles and Culture**\\n- **8:00 AM:** Breakfast at Hotel Danubia.\\n- + **9:30 AM:** Visit Bratislava Castle - Great views of the Danube.\\n- **12:00 + PM:** Lunch at Caf\xE9 23.\\n- **1:30 PM:** Tour the Slovak National Gallery.\\n- + **4:00 PM:** Relax at Sad Janka Kr\xE1\u013Ea park.\\n- **7:00 PM:** Dinner + at Modr\xE1 Hviezda.\\n\\n#### **Day 3: Day Trip to Devin Castle**\\n- **8:00 + AM:** Breakfast at Hotel Danubia.\\n- **9:30 AM:** Travel to Devin Castle.\\n- + **10:00 AM:** Explore Devin Castle.\\n- **12:30 PM:** Lunch at Restaurant + Devin.\\n- **2:00 PM:** Return to Bratislava.\\n- **3:00 PM:** Visit the Blue + Church.\\n- **5:00 PM:** Free time in Old Town.\\n- **7:00 PM:** Dinner at + U Zlateho Hruska.\\n\\n#### **Day 4: Art and History**\\n- **8:00 AM:** Breakfast + at Hotel Danubia.\\n- **9:30 AM:** Visit the Museum of Jewish Culture.\\n- + **11:30 AM:** Explore the Bratislava City Gallery.\\n- **1:00 PM:** Lunch + at Urban House.\\n- **3:00 PM:** Visit the Presidential Palace.\\n- **5:00 + PM:** Dinner at Primi.\\n\\n#### **Day 5: Departure and Local Markets**\\n- + **8:00 AM:** Breakfast at Hotel Danubia.\\n- **9:30 AM:** Visit the Old Market + Hall.\\n- **11:00 AM:** Free time for shopping.\\n- **1:00 PM:** Lunch at + the market.\\n- **2:30 PM:** Check-out from hotel.\\n- **3:00 PM:** Transfer + to airport.\\n\\n### Travel Tips\\n- Use public transport for getting around + the city.\\n- Carry an umbrella or rain jacket for rain on November 17 and + 19.\\n- Learn basic Slovak phrases to enhance local interactions.\\n\\n### + Packing Suggestions\\n- Warm clothing layers and comfortable walk\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"3764\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"608\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4372\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ga2ddWDpwj0=\",\"parentSpanId\":\"7Pd25D1LOvw=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042217954037000\",\"endTimeUnixNano\":\"1763042219061913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"qlkYoPsmsxQ=\",\"parentSpanId\":\"IbK2qPHFUEU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042222244554000\",\"endTimeUnixNano\":\"1763042223207393000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Bratislava\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"OxRjSied6Tk=\",\"parentSpanId\":\"Mix/K/BkE/k=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042226855593000\",\"endTimeUnixNano\":\"1763042227766872000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=48.1516988\\u0026longitude=17.1093063\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"hMj8FLIUcPo=\",\"parentSpanId\":\"th//dB4A1jI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042230364285000\",\"endTimeUnixNano\":\"1763042230934612000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Bratislava\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"kUQ5JjMwU3s=\",\"parentSpanId\":\"4+Xf2IVfm8g=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042235404005000\",\"endTimeUnixNano\":\"1763042274299868000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 5-day itinerary for Bratislava.\\n\\nTrip + Details:\\n- Destination: Bratislava\\n- Duration: 5 days\\n- Budget: moderate\\n- + Interests: cultural exploration, history, local cuisine\\n- Weather: Current + temperature is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\n- Destination Info: Bratislava is the capital and + largest city of Slovakia, known for its location by the Danube River and proximity + to Austria and Hungary. It's an important cultural, economic, and educational + center of the region.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and cultural exploration, history, local cuisine + interests.\\nEach day should have 3-5 activities with specific times, locations, + and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS72PQr8E6ISNBF6AHyK4FMvQhCE\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2032\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1443\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"589\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Cultural + Journey Through Bratislava\\\",\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"total_budget_estimate\\\":\\\"$800\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-15\\\",\\\"title\\\":\\\"Arrival + and Old Town Exploration\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Bratislava\\\",\\\"location\\\":\\\"Bratislava Airport\\\",\\\"notes\\\":\\\"Take + a taxi or shuttle to the city center.\\\"},{\\\"time\\\":\\\"11:30 AM\\\",\\\"activity\\\":\\\"Check-in + to accommodation\\\",\\\"location\\\":\\\"Hotel Danubia\\\",\\\"notes\\\":\\\"Moderate + hotel near the city center.\\\"},{\\\"time\\\":\\\"12:30 PM\\\",\\\"activity\\\":\\\"Lunch + at Slovak Pub\\\",\\\"location\\\":\\\"Obchodn\xE1 62\\\",\\\"notes\\\":\\\"Try + traditional Slovak dishes like bryndzov\xE9 halu\u0161ky.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Stroll through the Old Town\\\",\\\"location\\\":\\\"Bratislava + Old Town\\\",\\\"notes\\\":\\\"Visit St. Michael's Gate, Main Square, and + the Old Town Hall.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Visit + the Bratislava City Museum\\\",\\\"location\\\":\\\"Radni\u010Dn\xE1 1\\\",\\\"notes\\\":\\\"Learn + about the city's history.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Flagship Restaurant\\\",\\\"location\\\":\\\"Hlavn\xE9 n\xE1mestie 4\\\",\\\"notes\\\":\\\"Enjoy + local cuisine with a modern twist.\\\"}],\\\"meals\\\":[\\\"Lunch at Slovak + Pub\\\",\\\"Dinner at Flagship Restaurant\\\"],\\\"accommodation\\\":\\\"Hotel + Danubia\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-16\\\",\\\"title\\\":\\\"Castles + and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at hotel\\\",\\\"location\\\":\\\"Hotel Danubia\\\",\\\"notes\\\":\\\"Enjoy + a complimentary breakfast.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Bratislava Castle\\\",\\\"location\\\":\\\"Bratislava Castle\\\",\\\"notes\\\":\\\"Explore + the castle and enjoy views of the Danube.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Caf\xE9 23\\\",\\\"location\\\":\\\"Karpatsk\xE1 23\\\",\\\"notes\\\":\\\"A + trendy caf\xE9 with local dishes.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Tour + the Slovak National Gallery\\\",\\\"location\\\":\\\"R\xE1zusovo n\xE1bre\u017Eie + 2\\\",\\\"notes\\\":\\\"Explore Slovak art and culture.\\\"},{\\\"time\\\":\\\"4:00 + PM\\\",\\\"activity\\\":\\\"Relax at Sad Janka Kr\xE1\u013Ea park\\\",\\\"location\\\":\\\"Sad + Janka Kr\xE1\u013Ea\\\",\\\"notes\\\":\\\"Enjoy nature and views of the Danube.\\\"},{\\\"time\\\":\\\"7:00 + PM\\\",\\\"activity\\\":\\\"Dinner at Modr\xE1 Hviezda\\\",\\\"location\\\":\\\"Hradn\xE9 + n\xE1mestie 2\\\",\\\"notes\\\":\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '86232' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/42ff472d7feb6215bec0cf4e350675b2 + response: + body: + string: '{"batches":[{"resource":{"attributes":[{"key":"telemetry.sdk.language","value":{"stringValue":"python"}},{"key":"telemetry.sdk.name","value":{"stringValue":"opentelemetry"}},{"key":"telemetry.sdk.version","value":{"stringValue":"1.38.0"}},{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},"scopeSpans":[{"scope":{"name":"opentelemetry.instrumentation.openai_agents","version":"0.47.5"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"NPzxuz+vo54=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187236891000","endTimeUnixNano":"1763042189460181000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"gen_ai.prompt.0.role","value":{"stringValue":"user"}},{"key":"gen_ai.prompt.0.content","value":{"stringValue":"I + want to visit New York for 7 days with a moderate budget. I love history. + Create me an itinerary."}},{"key":"llm.request.functions.0.name","value":{"stringValue":"search_destinations"}},{"key":"llm.request.functions.0.description","value":{"stringValue":"Search + for travel destinations by region or subregion using REST Countries API."}},{"key":"llm.request.functions.0.parameters","value":{"stringValue":"{\"properties\": + {\"region\": {\"default\": \"\", \"description\": \"Region to search (e.g., + \\\"Europe\\\", \\\"Asia\\\", \\\"Americas\\\")\", \"title\": \"Region\", + \"type\": \"string\"}, \"subregion\": {\"default\": \"\", \"description\": + \"Subregion to search (e.g., \\\"Southern Europe\\\", \\\"Southeast Asia\\\")\", + \"title\": \"Subregion\", \"type\": \"string\"}}, \"title\": \"search_destinations_args\", + \"type\": \"object\", \"additionalProperties\": false, \"required\": [\"region\", + \"subregion\"]}"}},{"key":"llm.request.functions.1.name","value":{"stringValue":"get_location_coordinates"}},{"key":"llm.request.functions.1.description","value":{"stringValue":"Get + coordinates for a location using Nominatim (OpenStreetMap) API."}},{"key":"llm.request.functions.1.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the city or location\", \"title\": + \"Location Name\", \"type\": \"string\"}}, \"required\": [\"location_name\"], + \"title\": \"get_location_coordinates_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.2.name","value":{"stringValue":"get_weather_forecast"}},{"key":"llm.request.functions.2.description","value":{"stringValue":"Get + current weather and 7-day forecast using Open-Meteo API (no API key required)."}},{"key":"llm.request.functions.2.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the location\", \"title\": + \"Location Name\", \"type\": \"string\"}, \"latitude\": {\"description\": + \"Latitude coordinate\", \"title\": \"Latitude\", \"type\": \"number\"}, \"longitude\": + {\"description\": \"Longitude coordinate\", \"title\": \"Longitude\", \"type\": + \"number\"}}, \"required\": [\"location_name\", \"latitude\", \"longitude\"], + \"title\": \"get_weather_forecast_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.3.name","value":{"stringValue":"get_destination_info"}},{"key":"llm.request.functions.3.description","value":{"stringValue":"Get + information about a destination from Wikipedia API."}},{"key":"llm.request.functions.3.parameters","value":{"stringValue":"{\"properties\": + {\"destination_name\": {\"description\": \"Name of the destination\", \"title\": + \"Destination Name\", \"type\": \"string\"}}, \"required\": [\"destination_name\"], + \"title\": \"get_destination_info_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.4.name","value":{"stringValue":"calculate_travel_distance"}},{"key":"llm.request.functions.4.description","value":{"stringValue":"Calculate + distance and estimated flight time between two locations.\nUses Haversine + formula for distance calculation."}},{"key":"llm.request.functions.4.parameters","value":{"stringValue":"{\"properties\": + {\"from_location\": {\"description\": \"Starting location name\", \"title\": + \"From Location\", \"type\": \"string\"}, \"to_location\": {\"description\": + \"Destination location name\", \"title\": \"To Location\", \"type\": \"string\"}, + \"from_lat\": {\"description\": \"Starting latitude\", \"title\": \"From Lat\", + \"type\": \"number\"}, \"from_lon\": {\"description\": \"Starting longitude\", + \"title\": \"From Lon\", \"type\": \"number\"}, \"to_lat\": {\"description\": + \"Destination latitude\", \"title\": \"To Lat\", \"type\": \"number\"}, \"to_lon\": + {\"description\": \"Destination longitude\", \"title\": \"To Lon\", \"type\": + \"number\"}}, \"required\": [\"from_location\", \"to_location\", \"from_lat\", + \"from_lon\", \"to_lat\", \"to_lon\"], \"title\": \"calculate_travel_distance_args\", + \"type\": \"object\", \"additionalProperties\": false}"}},{"key":"llm.request.functions.5.name","value":{"stringValue":"create_itinerary"}},{"key":"llm.request.functions.5.description","value":{"stringValue":"Create + a detailed day-by-day travel itinerary using AI."}},{"key":"llm.request.functions.5.parameters","value":{"stringValue":"{\"properties\": + {\"destination\": {\"description\": \"Main destination for the trip\", \"title\": + \"Destination\", \"type\": \"string\"}, \"duration_days\": {\"description\": + \"Number of days for the trip\", \"title\": \"Duration Days\", \"type\": \"integer\"}, + \"budget\": {\"description\": \"Budget level (budget, moderate, luxury)\", + \"title\": \"Budget\", \"type\": \"string\"}, \"interests\": {\"description\": + \"Traveler interests (e.g., food, history, nature)\", \"title\": \"Interests\", + \"type\": \"string\"}, \"weather_info\": {\"default\": \"\", \"description\": + \"Weather forecast information (optional)\", \"title\": \"Weather Info\", + \"type\": \"string\"}, \"destination_details\": {\"default\": \"\", \"description\": + \"Additional destination details (optional)\", \"title\": \"Destination Details\", + \"type\": \"string\"}}, \"required\": [\"destination\", \"duration_days\", + \"budget\", \"interests\", \"weather_info\", \"destination_details\"], \"title\": + \"create_itinerary_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"gen_ai.request.temperature","value":{"doubleValue":1}},{"key":"gen_ai.request.top_p","value":{"doubleValue":1}},{"key":"gen_ai.request.model","value":{"stringValue":"gpt-4o-2024-08-06"}},{"key":"gen_ai.completion.0.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.0.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.0.tool_calls.0.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.0.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\"}"}},{"key":"gen_ai.completion.0.tool_calls.0.id","value":{"stringValue":"call_M6Cz1ZtgBBRVhPAKwGhP4HkH"}},{"key":"gen_ai.completion.1.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.1.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.1.tool_calls.0.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.1.tool_calls.0.arguments","value":{"stringValue":"{\"destination_name\":\"New + York\"}"}},{"key":"gen_ai.completion.1.tool_calls.0.id","value":{"stringValue":"call_XjU0qIs2w9toMdl7I78qNPRd"}},{"key":"gen_ai.completion.2.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.2.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.2.tool_calls.0.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.2.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\",\"latitude\":40.7128,\"longitude\":-74.006}"}},{"key":"gen_ai.completion.2.tool_calls.0.id","value":{"stringValue":"call_vW1iVMpxm4W5VAjz3uvhFwxl"}},{"key":"gen_ai.usage.prompt_tokens","value":{"intValue":"313"}},{"key":"gen_ai.usage.completion_tokens","value":{"intValue":"81"}},{"key":"llm.usage.total_tokens","value":{"intValue":"394"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Jn+55BUIsg8=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042192790536000","endTimeUnixNano":"1763042197342144000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"qUtAVv3MWrg=","parentSpanId":"i9g02JupVjo=","name":"Travel + Planner Agent.agent","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187234430000","endTimeUnixNano":"1763042197342199000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"agent"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"i9g02JupVjo=","name":"Agent + Workflow","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187232503000","endTimeUnixNano":"1763042197342213000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"workflow"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.workflow.name","value":{"stringValue":"Agent + Workflow"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"ndtaGw2O47w=","parentSpanId":"qUtAVv3MWrg=","name":"get_destination_info.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461414000","endTimeUnixNano":"1763042192787831000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"lAvl8cSGCdQ=","parentSpanId":"qUtAVv3MWrg=","name":"get_weather_forecast.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461614000","endTimeUnixNano":"1763042192787979000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"DRPQ4fXYGOk=","parentSpanId":"qUtAVv3MWrg=","name":"get_location_coordinates.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461045000","endTimeUnixNano":"1763042192788272000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}}]},{"scope":{"name":"opentelemetry.instrumentation.requests","version":"0.59b0"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"gvjOX9XKnIQ=","parentSpanId":"ndtaGw2O47w=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042189966888000","endTimeUnixNano":"1763042190649032000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://en.wikipedia.org/api/rest_v1/page/summary/New%20York"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Vd7J6WeIkI0=","parentSpanId":"lAvl8cSGCdQ=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042190650755000","endTimeUnixNano":"1763042191744238000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://api.open-meteo.com/v1/forecast?latitude=40.7128\u0026longitude=-74.006\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\u0026timezone=auto\u0026forecast_days=7"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"QO7ZImsbB1g=","parentSpanId":"DRPQ4fXYGOk=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042191747300000","endTimeUnixNano":"1763042192786263000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://nominatim.openstreetmap.org/search?q=New+York\u0026format=json\u0026limit=1"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}}]}]}]}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '14143' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/9a8cb895bee63fabb705329a05ced33b + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"VVGqP3Zlh/I=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057714246000\",\"endTimeUnixNano\":\"1763042185226841000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ebIwige/t/I=\",\"parentSpanId\":\"VVGqP3Zlh/I=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057715150000\",\"endTimeUnixNano\":\"1763042185226760000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"XmMF4QV1t5I=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042160420265000\",\"endTimeUnixNano\":\"1763042185224042000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31f412c8193854f3d40a67569bb\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3203a048193a1db4cd095de78a1\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.19.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Malta' itinerary=TravelItinerary(trip_title='Malta: + A Luxurious Journey Through History and Culture', destination='Malta', duration_days=7, + total_budget_estimate='\u20AC5000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Valletta', activities=[DayActivity(time='10:00 AM', activity='Check + into the hotel.', location='Palazzo Consiglia, Valletta', notes='Luxurious + boutique hotel with a historic feel.'), DayActivity(time='12:00 PM', activity='Lunch + at the hotel restaurant.', location='Palazzo Consiglia', notes='Try local + specialties.'), DayActivity(time='2:00 PM', activity='Explore Valletta on + foot.', location='Valletta', notes=\\\"Visit St. John's Co-Cathedral and the + Upper Barracca Gardens.\\\"), DayActivity(time='5:00 PM', activity='Enjoy + a sunset at the Barracca Lift.', location='Upper Barracca Gardens', notes='Stunning + views of the Grand Harbour.'), DayActivity(time='7:30 PM', activity='Dinner + at The Harbour Club.', location='Valletta', notes='Fine dining with Mediterranean + cuisine.')], meals=['Lunch at Palazzo Consiglia', 'Dinner at The Harbour Club'], + accommodation='Palazzo Consiglia, Valletta'), DayPlan(day_number=2, date='2023-10-02', + title='Historical Wonders of Mdina', activities=[DayActivity(time='9:00 AM', + activity='Breakfast at the hotel.', location='Palazzo Consiglia', notes='Enjoy + a gourmet breakfast.'), DayActivity(time='10:30 AM', activity='Visit Mdina, + the Silent City.', location='Mdina', notes='Explore the narrow streets and + historic architecture.'), DayActivity(time='1:00 PM', activity='Lunch at Fontanella + Tea Garden.', location='Mdina', notes='Famous for its cakes and views.'), + DayActivity(time='3:00 PM', activity=\\\"Visit St. Paul's Cathedral and the + Mdina Dungeons.\\\", location='Mdina', notes='Immerse in the history of the + city.'), DayActivity(time='6:00 PM', activity='Return to Valletta.', location='Valletta', + notes='Free evening to relax.'), DayActivity(time='8:00 PM', activity='Dinner + at La Viletta.', location='Valletta', n\"}},{\"key\":\"gen_ai.prompt.19.tool_call_id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Paradise + Found: A Luxurious Escape to Barbados', destination='Barbados', duration_days=7, + total_budget_estimate='$5,000', daily_plans=[DayPlan(day_number=1, date='2023-11-01', + title='Arrival and Beach Relaxation', activities=[DayActivity(time='10:00 + AM', activity='Arrival at Grantley Adams International Airport', location='Bridgetown', + notes='Private transfer to hotel.'), DayActivity(time='12:00 PM', activity='Check-in + at Sandy Lane Hotel', location='Sandy Lane, St. James', notes='Enjoy a welcome + drink upon arrival.'), DayActivity(time='1:00 PM', activity='Lunch at The + Bajan Blue', location='Sandy Lane Hotel', notes='Try the fresh catch of the + day.'), DayActivity(time='3:00 PM', activity='Relax at the beach', location='Sandy + Lane Beach', notes='Enjoy complimentary beach services and cabanas.'), DayActivity(time='7:00 + PM', activity=\\\"Dinner at L'Acajou\\\", location='Sandy Lane Hotel', notes='Reserve + a table for an oceanfront dining experience.')], meals=['Lunch at The Bajan + Blue', \\\"Dinner at L'Acajou\\\"], accommodation='Sandy Lane Hotel'), DayPlan(day_number=2, + date='2023-11-02', title='Exploring the Nature and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at The Bajan Blue', location='Sandy Lane Hotel', + notes='Buffet breakfast included.'), DayActivity(time='9:30 AM', activity=\\\"Visit + Harrison's Cave\\\", location='Welches, St. Thomas', notes='Guided tram tour + of the limestone caves.'), DayActivity(time='12:00 PM', activity='Lunch at + The Cliff', location='The Cliff, St. James', notes='One of the best views + in Barbados.'), DayActivity(time='2:00 PM', activity='Explore the Andromeda + Botanic Gardens', location='Bathsheba', notes='Stroll through beautiful tropical + plants.'), DayActivity(time='5:00 PM', activity='Return to hotel and relax + by the pool', location='Sandy Lane Hotel', notes='Enjoy the sunset views.'), + DayActivity(time='8:00 PM', activity='Dinner at The Tides', location='Holetown', + notes='Fin\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a luxurious winter getaway itinerary for two amazing destinations: Malta and + Barbados. You can choose either for a memorable experience!\\n\\n### Malta: + A Luxurious Journey Through History and Culture\\n\\n#### Overview:\\n- **Duration:** + 7 Days\\n- **Budget:** \u20AC5000\\n- **Interests:** History, culture, relaxation\\n- + **Weather:** Partly cloudy, 14\xB0C to 25\xB0C\\n\\n#### Highlights:\\n- **Explore + Valletta:** Discover historic sites like St. John's Co-Cathedral and the Upper + Barracca Gardens.\\n- **Visit Mdina:** Wander through the narrow streets of + the Silent City.\\n- **Cruise the Blue Lagoon:** Relax and swim in crystal-clear + waters on Comino Island.\\n- **Art and Culture in Valletta:** Enjoy museums, + the Grand Master's Palace, and traditional Maltese cuisine.\\n- **Day in Gozo:** + Experience UNESCO sites and enjoy local cuisine in Xlendi Bay.\\n- **Relaxation + and Spa Day:** Indulge in luxury spa treatments and wine tasting.\\n\\n#### + Suggested Activities:\\n- Stroll through the National Museum of Archaeology.\\n- + Enjoy a Michelin-starred dining experience at Noni.\\n- Unwind at the historic + and luxurious Palazzo Consiglia.\\n\\n---\\n\\n### Barbados: Paradise Found\\n\\n#### + Overview:\\n- **Duration:** 7 Days\\n- **Budget:** $5,000\\n- **Interests:** + Beach, nature, relaxation\\n- **Weather:** Mainly clear with occasional rain, + 26\xB0C to 28\xB0C\\n\\n#### Highlights:\\n- **Stay at Sandy Lane:** Experience + luxury at a top-notch hotel.\\n- **Catamaran Cruise:** Snorkel and swim with + turtles.\\n- **Visit Harrison's Cave:** Explore stunning limestone formations.\\n- + **Beach Relaxation:** Enjoy water sports and sunbathing at Sandy Lane Beach.\\n- + **Cultural Sightseeing:** Visit the Barbados Museum and Andromeda Botanic + Gardens.\\n- **Island Adventure:** Discover the Animal Flower Cave and Bathsheba + Beach.\\n\\n#### Suggested Activities:\\n- Indulge in a private yoga session + on the beach.\\n- Savor local flavors at dining spots like The Cliff and Oistins + Fish Fry.\\n- Book a spa treatment for ultimate relaxation.\\n\\nChoose either + Malta for its rich history and culture or Barbados for its tropical para\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"6963\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"482\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7445\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"embCySXGZiM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057716128000\",\"endTimeUnixNano\":\"1763042059661983000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"60\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"525\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"mC8CCwLW76g=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663097000\",\"endTimeUnixNano\":\"1763042062451067000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ssDCKShkL44=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663477000\",\"endTimeUnixNano\":\"1763042062451172000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fuu6tO+Ndlo=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042062452499000\",\"endTimeUnixNano\":\"1763042064799092000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1003\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1055\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fvHJdvNTMws=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064799830000\",\"endTimeUnixNano\":\"1763042067739773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"T8dJZDmT4I4=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064800127000\",\"endTimeUnixNano\":\"1763042067739862000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"v6cWcKHOCjI=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042067741423000\",\"endTimeUnixNano\":\"1763042070448846000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1077\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"86\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1163\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"UEIsxC37pwE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449031000\",\"endTimeUnixNano\":\"1763042072801957000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"THKreibx8ug=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449103000\",\"endTimeUnixNano\":\"1763042072802080000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"YBTnmbTN6jE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042072803790000\",\"endTimeUnixNano\":\"1763042075107212000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1391\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1443\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"SxqLZKfWCmA=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108148000\",\"endTimeUnixNano\":\"1763042076670490000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"5dBBk3l1eiQ=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108516000\",\"endTimeUnixNano\":\"1763042076670556000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"cE+1FFJhlnU=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076671577000\",\"endTimeUnixNano\":\"1763042082126494000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1535\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"208\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1743\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"QAlZHx6RuLM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082127730000\",\"endTimeUnixNano\":\"1763042160416987000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"th2IYCV4hsE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082128207000\",\"endTimeUnixNano\":\"1763042160417136000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HDPGse/8x4o=\",\"parentSpanId\":\"mC8CCwLW76g=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042060166394000\",\"endTimeUnixNano\":\"1763042061283475000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"IA+JMvfXJl8=\",\"parentSpanId\":\"ssDCKShkL44=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042061306153000\",\"endTimeUnixNano\":\"1763042062439682000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"PzmXYx0yNzo=\",\"parentSpanId\":\"fvHJdvNTMws=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042065903652000\",\"endTimeUnixNano\":\"1763042066847763000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Malta\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ON9RLT3j6a4=\",\"parentSpanId\":\"T8dJZDmT4I4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042066849545000\",\"endTimeUnixNano\":\"1763042067737708000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"M2Q2FV2cXIU=\",\"parentSpanId\":\"UEIsxC37pwE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042070951475000\",\"endTimeUnixNano\":\"1763042071877256000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=35.8885993\\u0026longitude=14.4476911\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Ze33HN9DUpc=\",\"parentSpanId\":\"THKreibx8ug=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042071879722000\",\"endTimeUnixNano\":\"1763042072800019000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HKpm5tCLJzU=\",\"parentSpanId\":\"SxqLZKfWCmA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042075611055000\",\"endTimeUnixNano\":\"1763042076145487000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Malta\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"lAzYqhlHfpg=\",\"parentSpanId\":\"5dBBk3l1eiQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076148467000\",\"endTimeUnixNano\":\"1763042076669422000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Znd3vlNcirg=\",\"parentSpanId\":\"th2IYCV4hsE=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042123087205000\",\"endTimeUnixNano\":\"1763042160414874000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: beach, nature, relaxation\\n- Weather: Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\n- Destination Info: Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the luxury budget level and beach, nature, + relaxation interests.\\nEach day should have 3-5 activities with specific + times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS5EtpivASLkttPJzZ83ik15FlLX\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2260\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1719\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"541\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Paradise + Found: A Luxurious Escape to Barbados\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$5,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-01\\\",\\\"title\\\":\\\"Arrival + and Beach Relaxation\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrival + at Grantley Adams International Airport\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Private + transfer to hotel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at Sandy Lane Hotel\\\",\\\"location\\\":\\\"Sandy Lane, St. James\\\",\\\"notes\\\":\\\"Enjoy + a welcome drink upon arrival.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Try + the fresh catch of the day.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at the beach\\\",\\\"location\\\":\\\"Sandy Lane Beach\\\",\\\"notes\\\":\\\"Enjoy + complimentary beach services and cabanas.\\\"},{\\\"time\\\":\\\"7:00 PM\\\",\\\"activity\\\":\\\"Dinner + at L'Acajou\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Reserve + a table for an oceanfront dining experience.\\\"}],\\\"meals\\\":[\\\"Lunch + at The Bajan Blue\\\",\\\"Dinner at L'Acajou\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-02\\\",\\\"title\\\":\\\"Exploring + the Nature and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Buffet + breakfast included.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Harrison's Cave\\\",\\\"location\\\":\\\"Welches, St. Thomas\\\",\\\"notes\\\":\\\"Guided + tram tour of the limestone caves.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Cliff\\\",\\\"location\\\":\\\"The Cliff, St. James\\\",\\\"notes\\\":\\\"One + of the best views in Barbados.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + the Andromeda Botanic Gardens\\\",\\\"location\\\":\\\"Bathsheba\\\",\\\"notes\\\":\\\"Stroll + through beautiful tropical plants.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to hotel and relax by the pool\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Enjoy + the sunset views.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Tides\\\",\\\"location\\\":\\\"Holetown\\\",\\\"notes\\\":\\\"Fine + dining with a local twist.\\\"}],\\\"meals\\\":[\\\"Breakfast at The Bajan + Blue\\\",\\\"Lunch at The Cliff\\\",\\\"Dinner at The Tides\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"BVSE4lyy6Ng=\",\"parentSpanId\":\"QAlZHx6RuLM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042082648743000\",\"endTimeUnixNano\":\"1763042123074678000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Malta.\\n\\nTrip + Details:\\n- Destination: Malta\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: history, culture, relaxation\\n- Weather: Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\n- Destination Info: Malta is an island country + in Southern Europe, located in the Mediterranean Sea. The country's capital, + Valletta, is a historic city rich in culture and architecture. Official languages + are Maltese and English.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the luxury budget level and history, culture, relaxation interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS4aBtO0u5Rq9bvPgdgOeSH0n75R\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2342\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1792\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"550\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Malta: + A Luxurious Journey Through History and Culture\\\",\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC5000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Valletta\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia, Valletta\\\",\\\"notes\\\":\\\"Luxurious + boutique hotel with a historic feel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Try + local specialties.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + Valletta on foot.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Visit + St. John's Co-Cathedral and the Upper Barracca Gardens.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a sunset at the Barracca Lift.\\\",\\\"location\\\":\\\"Upper + Barracca Gardens\\\",\\\"notes\\\":\\\"Stunning views of the Grand Harbour.\\\"},{\\\"time\\\":\\\"7:30 + PM\\\",\\\"activity\\\":\\\"Dinner at The Harbour Club.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Fine + dining with Mediterranean cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Palazzo + Consiglia\\\",\\\"Dinner at The Harbour Club\\\"],\\\"accommodation\\\":\\\"Palazzo + Consiglia, Valletta\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Historical + Wonders of Mdina\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Enjoy + a gourmet breakfast.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Visit + Mdina, the Silent City.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Explore + the narrow streets and historic architecture.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Fontanella Tea Garden.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Famous + for its cakes and views.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + St. Paul's Cathedral and the Mdina Dungeons.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Immerse + in the history of the city.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Return + to Valletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Free + evening to relax.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at La Viletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Authentic + Maltese cuisine.\\\"}],\\\"meals\\\":[\\\"Breakfast at Palazzo Consiglia\\\",\\\"Lunch + at Fontanella Tea Garden\\\",\\\"Dinner at La Viletta\\\"],\\\"accommodation\\\":\\\"Palazzo\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '127530' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/693bde2879b745ff467c20bf9cd2ea7a + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"pApb0LsOSf0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984002122000\",\"endTimeUnixNano\":\"1763042055706374000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Ty846xocHPs=\",\"parentSpanId\":\"pApb0LsOSf0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984003244000\",\"endTimeUnixNano\":\"1763042055706244000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"r4Bxnys8Ajs=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042004652154000\",\"endTimeUnixNano\":\"1763042043092842000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"dvw9i3v4lK0=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042043095808000\",\"endTimeUnixNano\":\"1763042055704401000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2d2455c81978681b90b08ba66c7\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Nature + \\u0026 Adventure in New Zealand: A Week of Wonders', destination='New Zealand', + duration_days=7, total_budget_estimate='$1,500 - $2,000', daily_plans=[DayPlan(day_number=1, + date='2023-10-01', title='Arrival in Auckland', activities=[DayActivity(time='10:00 + AM', activity='Arrive at Auckland Airport', location='Auckland Airport', notes='Collect + rental car from the airport.'), DayActivity(time='12:00 PM', activity='Lunch + at Depot Eatery', location='Auckland', notes='Try local favorites like the + green-lipped mussels.'), DayActivity(time='2:00 PM', activity='Visit Auckland + War Memorial Museum', location='Domain Drive, Auckland', notes='Explore Maori + culture and New Zealand\u2019s natural history.'), DayActivity(time='4:00 + PM', activity='Stroll in Auckland Domain', location='Auckland', notes='Enjoy + the gardens and scenic views.'), DayActivity(time='6:00 PM', activity='Dinner + at The Glass Goose Bar \\u0026 Eatery', location='Auckland', notes='Outdoor + seating available.')], meals=['Lunch at Depot Eatery', 'Dinner at The Glass + Goose Bar \\u0026 Eatery'], accommodation='SkyCity Hotel, Auckland'), DayPlan(day_number=2, + date='2023-10-02', title='Exploring Rotorua', activities=[DayActivity(time='8:00 + AM', activity='Drive to Rotorua', location='Auckland to Rotorua (approx. 3 + hours)', notes='Enjoy scenic views along the way.'), DayActivity(time='11:00 + AM', activity='Visit Te Puia', location='Rotorua', notes='See geysers and + learn about Maori culture.'), DayActivity(time='1:00 PM', activity='Lunch + at Puku Puku Caf\xE9', location='Rotorua', notes='Sample local dishes.'), + DayActivity(time='3:00 PM', activity='Relax in the Polynesian Spa', location='Rotorua', + notes='Enjoy geothermal pools.'), DayActivity(time='6:00 PM', activity='Dinner + at Eat Streat', location='Rotorua', notes='Choose from various food stalls.')], + meals=['Lunch at Puku Puku Caf\xE9', 'Dinner at Eat Streat'], accommodation='Regent + of Rotorua'), DayPlan(day_number=3, date='2023-1\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"### + Nature \\u0026 Adventure in New Zealand: A Week of Wonders\\n\\n#### Destination: + New Zealand\\n- **Duration:** 7 Days\\n- **Budget:** Moderate ($1,500 - $2,000)\\n- + **Interests:** Nature, Adventure, Culture\\n\\n#### Weather Insights\\n- Current + conditions are overcast with a temperature of 7.6\xB0C.\\n- Expect mild temperatures + with some precipitation next week, ranging from 4\xB0C to 22\xB0C.\\n\\n#### + Trip Overview\\n\\n**Day 1: Arrival in Auckland**\\n- **10:00 AM:** Arrive + at Auckland Airport - Collect rental car.\\n- **12:00 PM:** Lunch at Depot + Eatery - Try local green-lipped mussels.\\n- **2:00 PM:** Visit Auckland War + Memorial Museum - Explore Maori culture.\\n- **4:00 PM:** Stroll in Auckland + Domain - Enjoy gardens and views.\\n- **6:00 PM:** Dinner at The Glass Goose + Bar \\u0026 Eatery.\\n- **Accommodation:** SkyCity Hotel, Auckland\\n\\n**Day + 2: Exploring Rotorua**\\n- **8:00 AM:** Drive to Rotorua (3 hours).\\n- **11:00 + AM:** Visit Te Puia - See geysers and Maori culture.\\n- **1:00 PM:** Lunch + at Puku Puku Caf\xE9 - Sample local dishes.\\n- **3:00 PM:** Relax in Polynesian + Spa - Enjoy geothermal pools.\\n- **6:00 PM:** Dinner at Eat Streat.\\n- **Accommodation:** + Regent of Rotorua\\n\\n**Day 3: Adventure in Taupo**\\n- **8:00 AM:** Drive + to Taupo (1 hour).\\n- **10:00 AM:** Visit Huka Falls.\\n- **12:00 PM:** Lunch + at The Boat Shed Caf\xE9.\\n- **2:00 PM:** Skydiving or Jet Boating - Book + in advance.\\n- **5:00 PM:** Relax at Taupo Lake Front.\\n- **Accommodation:** + Millennium Hotel Taupo\\n\\n**Day 4: Tongariro National Park**\\n- **7:00 + AM:** Drive to Tongariro (1 hour).\\n- **8:30 AM:** Begin Tongariro Alpine + Crossing - Full-day hike.\\n- **12:00 PM:** Lunch on the trail - Pack a picnic.\\n- + **4:00 PM:** Complete hike - Stunning views.\\n- **6:00 PM:** Dinner at a + local lodge.\\n- **Accommodation:** Chateau Tongariro Hotel\\n\\n**Day 5: + Wellington Culture Day**\\n- **8:00 AM:** Drive to Wellington (4 hours).\\n- + **12:00 PM:** Lunch at Fidel's Caf\xE9.\\n- **2:00 PM:** Visit Te Papa Tongarewa + Museum - Free entry.\\n- **4:00 PM:** Walk along Wellington Waterfront.\\n- + **6:00 PM:** Dinner at Ortega Fish Shack.\\n- **A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4339\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"846\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5185\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"IS6vpvXSyWc=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984005653000\",\"endTimeUnixNano\":\"1763041985613511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"936\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"959\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"brUFs0ciw1M=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041985613918000\",\"endTimeUnixNano\":\"1763041987102501000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Irx+5vAh2RA=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041987103912000\",\"endTimeUnixNano\":\"1763041990567857000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"801\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8D1wUHRUnJY=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568009000\",\"endTimeUnixNano\":\"1763041993540330000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Z0YMsVUAJiE=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568056000\",\"endTimeUnixNano\":\"1763041993540426000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"YOs61ryvpF4=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041993541968000\",\"endTimeUnixNano\":\"1763041995719255000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"876\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"84\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"960\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"4JCF5eBk2tQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719607000\",\"endTimeUnixNano\":\"1763041998146609000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ixR9+7Z/j1o=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719759000\",\"endTimeUnixNano\":\"1763041998146773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8mbS0moocyI=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041998148255000\",\"endTimeUnixNano\":\"1763041999477499000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2374\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"18\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2392\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ZXf5rcFUcLQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041999478441000\",\"endTimeUnixNano\":\"1763042000768653000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"1qbdTW8b/2E=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042000769229000\",\"endTimeUnixNano\":\"1763042004651429000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2545\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2687\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"NKOz3ltzNm0=\",\"parentSpanId\":\"r4Bxnys8Ajs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042005169975000\",\"endTimeUnixNano\":\"1763042043090298000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: nature, adventure, culture\\n- Weather: Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\n- Destination Info: New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It's known for varied topography and sharp mountain peaks, + including the Southern Alps. The capital city is Wellington, and its most + populous city is Auckland.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and nature, adventure, culture interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS3K2CF576d4YsisW6wGQEds7rmH\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2169\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1573\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"596\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Nature + \\u0026 Adventure in New Zealand: A Week of Wonders\\\",\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500 + - $2,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + rental car from the airport.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Depot Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Try + local favorites like the green-lipped mussels.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Domain + Drive, Auckland\\\",\\\"notes\\\":\\\"Explore Maori culture and New Zealand\u2019s + natural history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Stroll + in Auckland Domain\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Enjoy + the gardens and scenic views.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Outdoor + seating available.\\\"}],\\\"meals\\\":[\\\"Lunch at Depot Eatery\\\",\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + Rotorua\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Rotorua\\\",\\\"location\\\":\\\"Auckland to Rotorua (approx. 3 hours)\\\",\\\"notes\\\":\\\"Enjoy + scenic views along the way.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit + Te Puia\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"See geysers + and learn about Maori culture.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Puku Puku Caf\xE9\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Sample + local dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + in the Polynesian Spa\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Enjoy + geothermal pools.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Eat Streat\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Choose + from various food stalls.\\\"}],\\\"meals\\\":[\\\"Lunch at Puku Puku Caf\xE9\\\",\\\"Dinner + at Eat Streat\\\"],\\\"accommodation\\\":\\\"Regent of Rotorua\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Adventure + in Taupo\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Taupo\\\",\\\"location\\\":\\\"Rotorua to Taupo (approx. 1 hour)\\\",\\\"notes\\\":\\\"Stop + at Huk\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"056VGM+8Nok=\",\"parentSpanId\":\"brUFs0ciw1M=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041986115747000\",\"endTimeUnixNano\":\"1763041987094583000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"kvjaqj4KYrQ=\",\"parentSpanId\":\"8D1wUHRUnJY=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041991671179000\",\"endTimeUnixNano\":\"1763041992478589000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"u+rad2kmPnI=\",\"parentSpanId\":\"Z0YMsVUAJiE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041992480116000\",\"endTimeUnixNano\":\"1763041993538494000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ETHKBPTcA2s=\",\"parentSpanId\":\"4JCF5eBk2tQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041996225152000\",\"endTimeUnixNano\":\"1763041997195369000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"jQ6zmabmw2M=\",\"parentSpanId\":\"ixR9+7Z/j1o=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041997198300000\",\"endTimeUnixNano\":\"1763041998144145000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"0YqSiXc6Hig=\",\"parentSpanId\":\"ZXf5rcFUcLQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041999981250000\",\"endTimeUnixNano\":\"1763042000767913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '98254' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/eed63641fc3ffa3ea40a166e2604edd2 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"kDfoXagrNmk=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306563000\",\"endTimeUnixNano\":\"1763041981994302000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"5t6oCNV1x24=\",\"parentSpanId\":\"kDfoXagrNmk=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306752000\",\"endTimeUnixNano\":\"1763041981994217000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"CPDw9H+t3W0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041900556562000\",\"endTimeUnixNano\":\"1763041909681624000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are some great beach destinations for families in the Americas to consider:\\n\\n1. + **Barbados (Caribbean)**\\n - Language: English\\n - Currency: BBD\\n + \ - Known for its beautiful sandy beaches and vibrant culture.\\n\\n2. **Puerto + Rico (Caribbean)**\\n - Languages: English, Spanish\\n - Currency: USD\\n + \ - Offers lovely beaches, lush rainforests, and a rich cultural heritage.\\n\\n3. + **Turks and Caicos Islands (Caribbean)**\\n - Language: English\\n - Currency: + USD\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\n\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\n\\nI'll gather weather + information and details about Barbados and then create your itinerary.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"664\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"221\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"885\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"gjU8x51ljN8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909682975000\",\"endTimeUnixNano\":\"1763041912228857000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"saPJCTZOa8E=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909683354000\",\"endTimeUnixNano\":\"1763041912228748000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"v4pJsgk8eu8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041912233276000\",\"endTimeUnixNano\":\"1763041916478547000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1859\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"37\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1896\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vW7dC7113KM=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041916479365000\",\"endTimeUnixNano\":\"1763041923081358000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"S5LEq3ro4i0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041923083562000\",\"endTimeUnixNano\":\"1763041926952714000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2178\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"127\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2305\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"0revCekYick=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041926953355000\",\"endTimeUnixNano\":\"1763041968277636000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"awXbMZjA1IQ=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041968278645000\",\"endTimeUnixNano\":\"1763041981992200000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e284b4408193b787ece129274ff2\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Beach + Bliss in Barbados: A 7-Day Tropical Escape', destination='Barbados', duration_days=7, + total_budget_estimate='$1,500', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and Beach Day', activities=[DayActivity(time='12:00 PM', activity='Check-in + at hotel', location='Turtle Beach by Elegant Hotels', notes='Enjoy welcome + drinks and settle into your room.'), DayActivity(time='1:30 PM', activity='Lunch + at the hotel restaurant', location='Turtle Beach', notes='Try the grilled + fish with local spices.'), DayActivity(time='3:00 PM', activity='Relax at + Dover Beach', location='Dover Beach', notes='Beach chairs and umbrellas available + for rent.'), DayActivity(time='6:00 PM', activity='Sunset viewing', location='Dover + Beach', notes='Perfect spot for photos.'), DayActivity(time='7:30 PM', activity='Dinner + at The Oistins Fish Fry', location='Oistins', notes='A vibrant atmosphere + with fresh seafood.')], meals=['Lunch at Turtle Beach', 'Dinner at Oistins + Fish Fry'], accommodation='Turtle Beach by Elegant Hotels'), DayPlan(day_number=2, + date='2023-10-02', title='Explore Bridgetown', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at the hotel', location='Turtle Beach', notes='Buffet + style with local and international options.'), DayActivity(time='9:30 AM', + activity='Visit the Barbados Museum \\u0026 Historical Society', location='Bridgetown', + notes=\\\"Learn about the island's history.\\\"), DayActivity(time='12:00 + PM', activity='Lunch at Brown Sugar', location='Bridgetown', notes='Taste + local dishes in an outdoor setting.'), DayActivity(time='2:00 PM', activity='Explore + George Street and local shops', location='Bridgetown', notes='Pick up souvenirs + and local crafts.'), DayActivity(time='4:00 PM', activity='Relax at Pebbles + Beach', location='Pebbles Beach', notes='Enjoy swimming and sunbathing.'), + DayActivity(time='6:00 PM', activity='Dinner at The Cliff', location='St. + James', notes='Reservations recommend\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for your family vacation in Barbados, focusing + on beach activities and cultural experiences:\\n\\n### Trip Title: Beach Bliss + in Barbados: A 7-Day Tropical Escape\\n\\n#### **Day 1: Arrival and Beach + Day**\\n- **12:00 PM:** Check-in at Turtle Beach by Elegant Hotels. Enjoy + welcome drinks and settle in.\\n- **1:30 PM:** Lunch at the hotel restaurant. + Try the grilled fish with local spices.\\n- **3:00 PM:** Relax at Dover Beach. + Beach chairs and umbrellas available.\\n- **6:00 PM:** Enjoy a sunset viewing + at Dover Beach\u2014perfect for photos.\\n- **7:30 PM:** Dinner at The Oistins + Fish Fry. Vibrant atmosphere with fresh seafood.\\n\\n#### **Day 2: Explore + Bridgetown**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** + Visit the Barbados Museum \\u0026 Historical Society. Learn about the island's + history.\\n- **12:00 PM:** Lunch at Brown Sugar. Taste local dishes.\\n- **2:00 + PM:** Explore George Street and local shops for souvenirs.\\n- **4:00 PM:** + Relax at Pebbles Beach. Enjoy swimming and sunbathing.\\n- **6:00 PM:** Dinner + at The Cliff. Stunning ocean views, reservations recommended.\\n\\n#### **Day + 3: Catamaran Adventure**\\n- **7:30 AM:** Breakfast at Turtle Beach.\\n- **9:00 + AM:** Catamaran cruise from Bridgetown. Swim with turtles and snorkel at coral + reefs.\\n- **12:30 PM:** Lunch on board the catamaran.\\n- **3:00 PM:** Return + to the hotel, relax at the beach or pool.\\n- **7:00 PM:** Dinner at The Round + House in Bathsheba. Try local fish dishes.\\n\\n#### **Day 4: Beach Hopping**\\n- + **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** Visit Crane Beach. + Famous for its pink sand.\\n- **12:00 PM:** Lunch at The Crane Beach Resort.\\n- + **2:00 PM:** Head to Bottom Bay Beach. Less crowded and perfect for relaxation.\\n- + **5:00 PM:** Return to hotel.\\n- **7:30 PM:** Dinner at Naru Restaurant and + Lounge. Local and Asian fusion cuisine.\\n\\n#### **Day 5: Island Culture + and Relaxation**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **10:00 AM:** + Visit St. Nicholas Abbey. Tour the plantation and rum distillery.\\n- **1:00 + PM:** Lunch at the A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4121\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"842\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4963\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vSd7s42xrTw=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894311147000\",\"endTimeUnixNano\":\"1763041898739189000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"932\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"22\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"954\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"dkkP9YWRUaI=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041898739699000\",\"endTimeUnixNano\":\"1763041900553722000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"jB510DMs6/8=\",\"parentSpanId\":\"saPJCTZOa8E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910186602000\",\"endTimeUnixNano\":\"1763041910919083000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"I4smyApmv2I=\",\"parentSpanId\":\"gjU8x51ljN8=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910919911000\",\"endTimeUnixNano\":\"1763041912227844000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wsif3cTB5R0=\",\"parentSpanId\":\"vW7dC7113KM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041916984585000\",\"endTimeUnixNano\":\"1763041923078888000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"T263X02AHSc=\",\"parentSpanId\":\"dkkP9YWRUaI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041899242488000\",\"endTimeUnixNano\":\"1763041900545636000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wJnvML6OlKo=\",\"parentSpanId\":\"0revCekYick=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041927471141000\",\"endTimeUnixNano\":\"1763041968276800000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: beaches\\n- Weather: Current temperature 27.4\xB0C, mainly clear + conditions. Forecast: mostly warm weather with some rain expected later in + the week.\\n- Destination Info: Barbados is an island country in the Caribbean + located in the Atlantic Ocean. It is part of the Lesser Antilles of the West + Indies and the easternmost island of the Caribbean region. It lies on the + boundary of the South American and Caribbean plates. Its capital and largest + city is Bridgetown.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and beaches interests.\\nEach day should have 3-5 + activities with specific times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS25L4VnHyasIegXuwEirm30SBWf\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2288\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1717\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"571\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Beach + Bliss in Barbados: A 7-Day Tropical Escape\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Beach Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at hotel\\\",\\\"location\\\":\\\"Turtle Beach by Elegant Hotels\\\",\\\"notes\\\":\\\"Enjoy + welcome drinks and settle into your room.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Try + the grilled fish with local spices.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at Dover Beach\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Beach + chairs and umbrellas available for rent.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Sunset + viewing\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Perfect + spot for photos.\\\"},{\\\"time\\\":\\\"7:30 PM\\\",\\\"activity\\\":\\\"Dinner + at The Oistins Fish Fry\\\",\\\"location\\\":\\\"Oistins\\\",\\\"notes\\\":\\\"A + vibrant atmosphere with fresh seafood.\\\"}],\\\"meals\\\":[\\\"Lunch at Turtle + Beach\\\",\\\"Dinner at Oistins Fish Fry\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Explore + Bridgetown\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Buffet + style with local and international options.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + the Barbados Museum \\u0026 Historical Society\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Learn + about the island's history.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Brown Sugar\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Taste + local dishes in an outdoor setting.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + George Street and local shops\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Pick + up souvenirs and local crafts.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Relax + at Pebbles Beach\\\",\\\"location\\\":\\\"Pebbles Beach\\\",\\\"notes\\\":\\\"Enjoy + swimming and sunbathing.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Cliff\\\",\\\"location\\\":\\\"St. James\\\",\\\"notes\\\":\\\"Reservations + recommended for stunning ocean views.\\\"}],\\\"meals\\\":[\\\"Breakfast at + Turtle Beach\\\",\\\"Lunch at Brown Sugar\\\",\\\"Dinner at The Cliff\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '79035' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_error_filter.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_error_filter.yaml new file mode 100644 index 0000000..55239b2 --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_error_filter.yaml @@ -0,0 +1,32 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B+status+%3D+error+%7D&limit=10 + response: + body: + string: '{"traces":[],"metrics":{"inspectedBytes":"59815","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Length: + - '125' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_generic_filter.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_generic_filter.yaml new file mode 100644 index 0000000..9547d9f --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_generic_filter.yaml @@ -0,0 +1,32 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B+span.duration_ms+%3E+50+%7D&limit=10 + response: + body: + string: '{"traces":[],"metrics":{"inspectedBytes":"66363","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Length: + - '125' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_limit.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_limit.yaml new file mode 100644 index 0000000..1f835b2 --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_limit.yaml @@ -0,0 +1,3384 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B%7D&limit=5 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"24729","totalBlocks":2,"completedJobs":4,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Vary: + - Accept-Encoding + content-length: + - '4715' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/bec9c8df1c3a22a134e4c9c7aa0f0ce3 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"htO31/xjQN0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458122243000\",\"endTimeUnixNano\":\"1763042536895402000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"0hFkYEm0pAA=\",\"parentSpanId\":\"htO31/xjQN0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458123662000\",\"endTimeUnixNano\":\"1763042536895316000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"FSS1aMtuo4g=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042521888311000\",\"endTimeUnixNano\":\"1763042536893685000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4ab7f848195ada04713bd68e3dc\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Exploring + the Wonders of New Zealand', destination='New Zealand', duration_days=7, total_budget_estimate='$1,500', + daily_plans=[DayPlan(day_number=1, date='2023-10-01', title='Arrival in Auckland', + activities=[DayActivity(time='09:00 AM', activity='Arrive at Auckland Airport', + location='Auckland Airport', notes='Collect your rental car for the week.'), + DayActivity(time='10:00 AM', activity='Check into Accommodation', location='SkyCity + Hotel', notes='Located in the city center, convenient for exploring.'), DayActivity(time='11:30 + AM', activity='Visit Auckland War Memorial Museum', location='Auckland Domain', + notes='Explore New Zealand\u2019s cultural heritage and natural history.'), + DayActivity(time='02:00 PM', activity='Lunch at Tom Tom Bar \\u0026 Eatery', + location='SkyCity', notes='Enjoy a relaxing meal with views of the city.'), + DayActivity(time='03:30 PM', activity='Walk around Viaduct Harbour', location='Viaduct + Harbour', notes='Stroll along the waterfront and enjoy the vibrant atmosphere.'), + DayActivity(time='06:30 PM', activity='Dinner at Depot Eatery', location='Federal + Street, Auckland', notes='Experience local New Zealand cuisine.')], meals=['Lunch + at Tom Tom Bar \\u0026 Eatery', 'Dinner at Depot Eatery'], accommodation='SkyCity + Hotel, Auckland'), DayPlan(day_number=2, date='2023-10-02', title='Exploring + the Bay of Islands', activities=[DayActivity(time='07:00 AM', activity='Drive + to Bay of Islands', location='Bay of Islands', notes='Approx. 3 hours drive, + enjoy scenic views on the way.'), DayActivity(time='10:30 AM', activity='Take + a Bay of Islands Cruise', location='Paihia Wharf', notes='Explore the stunning + islands and spot marine wildlife.'), DayActivity(time='01:00 PM', activity='Lunch + at The Gables Restaurant', location='Russell', notes='Try fresh seafood and + local dishes.'), DayActivity(time='03:00 PM', activity='Visit Waitangi Treaty + Grounds', location='Waitangi', notes=\\\"Learn about New Zealand's history + an\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for a romantic cultural vacation in New Zealand, + tailored to your interests:\\n\\n### Exploring the Wonders of New Zealand\\n\\n#### + **Day 1: Arrival in Auckland**\\n- **Morning**\\n - Arrive at Auckland Airport\\n + \ - Check into SkyCity Hotel, centrally located for easy exploration.\\n- + **Afternoon**\\n - Visit Auckland War Memorial Museum: Delve into New Zealand\u2019s + cultural heritage.\\n - Lunch at Tom Tom Bar \\u0026 Eatery: Enjoy city views.\\n- + **Evening**\\n - Walk around Viaduct Harbour: Vibrant waterfront stroll.\\n + \ - Dinner at Depot Eatery: Experience local cuisine.\\n\\n#### **Day 2: Exploring + the Bay of Islands**\\n- **Morning**\\n - Drive to Bay of Islands: Scenic + 3-hour journey.\\n - Take a Bay of Islands Cruise: Explore islands and marine + wildlife.\\n- **Afternoon**\\n - Lunch at The Gables Restaurant: Fresh local + seafood.\\n - Visit Waitangi Treaty Grounds: Learn about New Zealand's history.\\n- + **Evening**\\n - Return to Auckland.\\n - Dinner at The Glasshouse.\\n\\n#### + **Day 3: Wellington - The Capital**\\n- **Morning**\\n - Drive to Wellington: + Enjoy the scenic route.\\n- **Afternoon**\\n - Lunch at The Boatshed Cafe.\\n + \ - Visit Te Papa Tongarewa (Museum of New Zealand): Explore national history.\\n- + **Evening**\\n - Cable Car Ride to Kelburn: City views.\\n - Dinner at Logan + Brown: Fine dining.\\n\\n#### **Day 4: Nature and Culture in Wellington**\\n- + **Morning**\\n - Wellington Botanic Garden: Peaceful morning walk.\\n - + Explore Zealandia Ecosanctuary: Discover unique wildlife.\\n- **Afternoon**\\n + \ - Lunch at The Ramen Shop.\\n - Visit the National Portrait Gallery.\\n- + **Evening**\\n - Dinner at The Old Bailey.\\n\\n#### **Day 5: Travel to Queenstown**\\n- + **Early Morning**\\n - Fly from Wellington to Queenstown.\\n- **Morning**\\n + \ - Check into Center City Apartments.\\n - Skyline Gondola Ride: Panoramic + views.\\n- **Afternoon**\\n - Lunch at Stratosfare Restaurant: Mountain views.\\n + \ - Explore Queenstown Gardens.\\n- **Evening**\\n - Jet Boating on Lake + Wakatipu.\\n - Dinner at Fergburger.\\n\\n#### **Day 6: Adventure in Queenstown**\\n- + **Morning**\\n - \"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4669\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"694\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5363\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]}]},{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"SZQWdqnT86M=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458125576000\",\"endTimeUnixNano\":\"1763042460061974000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"933\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"956\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"LhJKSMoSSOA=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042460062781000\",\"endTimeUnixNano\":\"1763042461638134000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"j4A8EPQuGCg=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042461639066000\",\"endTimeUnixNano\":\"1763042463839211000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"800\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"850\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ULgV+UrP/qI=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463839867000\",\"endTimeUnixNano\":\"1763042466936364000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"rU40hFuwoTM=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463840073000\",\"endTimeUnixNano\":\"1763042466936520000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"t17Kam4h9+E=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466938646000\",\"endTimeUnixNano\":\"1763042470405151000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.completion.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.3.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"437\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"116\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"553\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"7g4u8KYJLAU=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406246000\",\"endTimeUnixNano\":\"1763042474022207000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"yCwOkiG7rZ4=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406582000\",\"endTimeUnixNano\":\"1763042474022257000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"suvbAlwFQxE=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406864000\",\"endTimeUnixNano\":\"1763042474022284000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"kK2HJo7iF1s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470407130000\",\"endTimeUnixNano\":\"1763042474022309000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"hqoFE9rpZHw=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042474023255000\",\"endTimeUnixNano\":\"1763042479037529000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2709\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"3q+1aP5st6s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042479037941000\",\"endTimeUnixNano\":\"1763042521886451000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xp8+s75qaoQ=\",\"parentSpanId\":\"LhJKSMoSSOA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042460566475000\",\"endTimeUnixNano\":\"1763042461631027000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xTNGMbJ8o4w=\",\"parentSpanId\":\"ULgV+UrP/qI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042464944178000\",\"endTimeUnixNano\":\"1763042466058265000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"cp8E6e04/1g=\",\"parentSpanId\":\"rU40hFuwoTM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466061655000\",\"endTimeUnixNano\":\"1763042466934165000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"vHsnrxC0dGw=\",\"parentSpanId\":\"7g4u8KYJLAU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042470916507000\",\"endTimeUnixNano\":\"1763042471857859000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"wieBZmgqMfE=\",\"parentSpanId\":\"yCwOkiG7rZ4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042471863066000\",\"endTimeUnixNano\":\"1763042472795187000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"KvPdWQGWzrM=\",\"parentSpanId\":\"suvbAlwFQxE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042472796856000\",\"endTimeUnixNano\":\"1763042473492982000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"YDcPBs0N6BQ=\",\"parentSpanId\":\"kK2HJo7iF1s=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042473499558000\",\"endTimeUnixNano\":\"1763042474021224000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Australia\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ZxRbtS6dkJI=\",\"parentSpanId\":\"3q+1aP5st6s=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042479555737000\",\"endTimeUnixNano\":\"1763042521884511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: culture, nature\\n- Weather: Current temperature is 7.5\xB0C and + overcast. Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected + on certain days.\\n- Destination Info: New Zealand is an island country in + the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the moderate budget level and culture, + nature interests.\\nEach day should have 3-5 activities with specific times, + locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbSAyeprdNroIr4yr884B5SquCIU0\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2320\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1726\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"594\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Exploring + the Wonders of New Zealand\\\",\\\"destination\\\":\\\"New Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + your rental car for the week.\\\"},{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into Accommodation\\\",\\\"location\\\":\\\"SkyCity Hotel\\\",\\\"notes\\\":\\\"Located + in the city center, convenient for exploring.\\\"},{\\\"time\\\":\\\"11:30 + AM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Auckland + Domain\\\",\\\"notes\\\":\\\"Explore New Zealand\u2019s cultural heritage + and natural history.\\\"},{\\\"time\\\":\\\"02:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"SkyCity\\\",\\\"notes\\\":\\\"Enjoy + a relaxing meal with views of the city.\\\"},{\\\"time\\\":\\\"03:30 PM\\\",\\\"activity\\\":\\\"Walk + around Viaduct Harbour\\\",\\\"location\\\":\\\"Viaduct Harbour\\\",\\\"notes\\\":\\\"Stroll + along the waterfront and enjoy the vibrant atmosphere.\\\"},{\\\"time\\\":\\\"06:30 + PM\\\",\\\"activity\\\":\\\"Dinner at Depot Eatery\\\",\\\"location\\\":\\\"Federal + Street, Auckland\\\",\\\"notes\\\":\\\"Experience local New Zealand cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"Dinner at Depot Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + the Bay of Islands\\\",\\\"activities\\\":[{\\\"time\\\":\\\"07:00 AM\\\",\\\"activity\\\":\\\"Drive + to Bay of Islands\\\",\\\"location\\\":\\\"Bay of Islands\\\",\\\"notes\\\":\\\"Approx. + 3 hours drive, enjoy scenic views on the way.\\\"},{\\\"time\\\":\\\"10:30 + AM\\\",\\\"activity\\\":\\\"Take a Bay of Islands Cruise\\\",\\\"location\\\":\\\"Paihia + Wharf\\\",\\\"notes\\\":\\\"Explore the stunning islands and spot marine wildlife.\\\"},{\\\"time\\\":\\\"01:00 + PM\\\",\\\"activity\\\":\\\"Lunch at The Gables Restaurant\\\",\\\"location\\\":\\\"Russell\\\",\\\"notes\\\":\\\"Try + fresh seafood and local dishes.\\\"},{\\\"time\\\":\\\"03:00 PM\\\",\\\"activity\\\":\\\"Visit + Waitangi Treaty Grounds\\\",\\\"location\\\":\\\"Waitangi\\\",\\\"notes\\\":\\\"Learn + about New Zealand's history and culture.\\\"},{\\\"time\\\":\\\"05:30 PM\\\",\\\"activity\\\":\\\"Return + to Auckland\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Relax + in the car or stop for coffee on the way.\\\"},{\\\"time\\\":\\\"07:3\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '89149' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/42ff472d7feb6215bec0cf4e350675b2 + response: + body: + string: '{"batches":[{"resource":{"attributes":[{"key":"telemetry.sdk.language","value":{"stringValue":"python"}},{"key":"telemetry.sdk.name","value":{"stringValue":"opentelemetry"}},{"key":"telemetry.sdk.version","value":{"stringValue":"1.38.0"}},{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},"scopeSpans":[{"scope":{"name":"opentelemetry.instrumentation.openai_agents","version":"0.47.5"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"NPzxuz+vo54=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187236891000","endTimeUnixNano":"1763042189460181000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"gen_ai.prompt.0.role","value":{"stringValue":"user"}},{"key":"gen_ai.prompt.0.content","value":{"stringValue":"I + want to visit New York for 7 days with a moderate budget. I love history. + Create me an itinerary."}},{"key":"llm.request.functions.0.name","value":{"stringValue":"search_destinations"}},{"key":"llm.request.functions.0.description","value":{"stringValue":"Search + for travel destinations by region or subregion using REST Countries API."}},{"key":"llm.request.functions.0.parameters","value":{"stringValue":"{\"properties\": + {\"region\": {\"default\": \"\", \"description\": \"Region to search (e.g., + \\\"Europe\\\", \\\"Asia\\\", \\\"Americas\\\")\", \"title\": \"Region\", + \"type\": \"string\"}, \"subregion\": {\"default\": \"\", \"description\": + \"Subregion to search (e.g., \\\"Southern Europe\\\", \\\"Southeast Asia\\\")\", + \"title\": \"Subregion\", \"type\": \"string\"}}, \"title\": \"search_destinations_args\", + \"type\": \"object\", \"additionalProperties\": false, \"required\": [\"region\", + \"subregion\"]}"}},{"key":"llm.request.functions.1.name","value":{"stringValue":"get_location_coordinates"}},{"key":"llm.request.functions.1.description","value":{"stringValue":"Get + coordinates for a location using Nominatim (OpenStreetMap) API."}},{"key":"llm.request.functions.1.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the city or location\", \"title\": + \"Location Name\", \"type\": \"string\"}}, \"required\": [\"location_name\"], + \"title\": \"get_location_coordinates_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.2.name","value":{"stringValue":"get_weather_forecast"}},{"key":"llm.request.functions.2.description","value":{"stringValue":"Get + current weather and 7-day forecast using Open-Meteo API (no API key required)."}},{"key":"llm.request.functions.2.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the location\", \"title\": + \"Location Name\", \"type\": \"string\"}, \"latitude\": {\"description\": + \"Latitude coordinate\", \"title\": \"Latitude\", \"type\": \"number\"}, \"longitude\": + {\"description\": \"Longitude coordinate\", \"title\": \"Longitude\", \"type\": + \"number\"}}, \"required\": [\"location_name\", \"latitude\", \"longitude\"], + \"title\": \"get_weather_forecast_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.3.name","value":{"stringValue":"get_destination_info"}},{"key":"llm.request.functions.3.description","value":{"stringValue":"Get + information about a destination from Wikipedia API."}},{"key":"llm.request.functions.3.parameters","value":{"stringValue":"{\"properties\": + {\"destination_name\": {\"description\": \"Name of the destination\", \"title\": + \"Destination Name\", \"type\": \"string\"}}, \"required\": [\"destination_name\"], + \"title\": \"get_destination_info_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.4.name","value":{"stringValue":"calculate_travel_distance"}},{"key":"llm.request.functions.4.description","value":{"stringValue":"Calculate + distance and estimated flight time between two locations.\nUses Haversine + formula for distance calculation."}},{"key":"llm.request.functions.4.parameters","value":{"stringValue":"{\"properties\": + {\"from_location\": {\"description\": \"Starting location name\", \"title\": + \"From Location\", \"type\": \"string\"}, \"to_location\": {\"description\": + \"Destination location name\", \"title\": \"To Location\", \"type\": \"string\"}, + \"from_lat\": {\"description\": \"Starting latitude\", \"title\": \"From Lat\", + \"type\": \"number\"}, \"from_lon\": {\"description\": \"Starting longitude\", + \"title\": \"From Lon\", \"type\": \"number\"}, \"to_lat\": {\"description\": + \"Destination latitude\", \"title\": \"To Lat\", \"type\": \"number\"}, \"to_lon\": + {\"description\": \"Destination longitude\", \"title\": \"To Lon\", \"type\": + \"number\"}}, \"required\": [\"from_location\", \"to_location\", \"from_lat\", + \"from_lon\", \"to_lat\", \"to_lon\"], \"title\": \"calculate_travel_distance_args\", + \"type\": \"object\", \"additionalProperties\": false}"}},{"key":"llm.request.functions.5.name","value":{"stringValue":"create_itinerary"}},{"key":"llm.request.functions.5.description","value":{"stringValue":"Create + a detailed day-by-day travel itinerary using AI."}},{"key":"llm.request.functions.5.parameters","value":{"stringValue":"{\"properties\": + {\"destination\": {\"description\": \"Main destination for the trip\", \"title\": + \"Destination\", \"type\": \"string\"}, \"duration_days\": {\"description\": + \"Number of days for the trip\", \"title\": \"Duration Days\", \"type\": \"integer\"}, + \"budget\": {\"description\": \"Budget level (budget, moderate, luxury)\", + \"title\": \"Budget\", \"type\": \"string\"}, \"interests\": {\"description\": + \"Traveler interests (e.g., food, history, nature)\", \"title\": \"Interests\", + \"type\": \"string\"}, \"weather_info\": {\"default\": \"\", \"description\": + \"Weather forecast information (optional)\", \"title\": \"Weather Info\", + \"type\": \"string\"}, \"destination_details\": {\"default\": \"\", \"description\": + \"Additional destination details (optional)\", \"title\": \"Destination Details\", + \"type\": \"string\"}}, \"required\": [\"destination\", \"duration_days\", + \"budget\", \"interests\", \"weather_info\", \"destination_details\"], \"title\": + \"create_itinerary_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"gen_ai.request.temperature","value":{"doubleValue":1}},{"key":"gen_ai.request.top_p","value":{"doubleValue":1}},{"key":"gen_ai.request.model","value":{"stringValue":"gpt-4o-2024-08-06"}},{"key":"gen_ai.completion.0.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.0.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.0.tool_calls.0.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.0.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\"}"}},{"key":"gen_ai.completion.0.tool_calls.0.id","value":{"stringValue":"call_M6Cz1ZtgBBRVhPAKwGhP4HkH"}},{"key":"gen_ai.completion.1.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.1.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.1.tool_calls.0.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.1.tool_calls.0.arguments","value":{"stringValue":"{\"destination_name\":\"New + York\"}"}},{"key":"gen_ai.completion.1.tool_calls.0.id","value":{"stringValue":"call_XjU0qIs2w9toMdl7I78qNPRd"}},{"key":"gen_ai.completion.2.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.2.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.2.tool_calls.0.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.2.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\",\"latitude\":40.7128,\"longitude\":-74.006}"}},{"key":"gen_ai.completion.2.tool_calls.0.id","value":{"stringValue":"call_vW1iVMpxm4W5VAjz3uvhFwxl"}},{"key":"gen_ai.usage.prompt_tokens","value":{"intValue":"313"}},{"key":"gen_ai.usage.completion_tokens","value":{"intValue":"81"}},{"key":"llm.usage.total_tokens","value":{"intValue":"394"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Jn+55BUIsg8=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042192790536000","endTimeUnixNano":"1763042197342144000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"qUtAVv3MWrg=","parentSpanId":"i9g02JupVjo=","name":"Travel + Planner Agent.agent","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187234430000","endTimeUnixNano":"1763042197342199000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"agent"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"i9g02JupVjo=","name":"Agent + Workflow","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187232503000","endTimeUnixNano":"1763042197342213000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"workflow"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.workflow.name","value":{"stringValue":"Agent + Workflow"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"ndtaGw2O47w=","parentSpanId":"qUtAVv3MWrg=","name":"get_destination_info.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461414000","endTimeUnixNano":"1763042192787831000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"lAvl8cSGCdQ=","parentSpanId":"qUtAVv3MWrg=","name":"get_weather_forecast.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461614000","endTimeUnixNano":"1763042192787979000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"DRPQ4fXYGOk=","parentSpanId":"qUtAVv3MWrg=","name":"get_location_coordinates.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461045000","endTimeUnixNano":"1763042192788272000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}}]},{"scope":{"name":"opentelemetry.instrumentation.requests","version":"0.59b0"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"gvjOX9XKnIQ=","parentSpanId":"ndtaGw2O47w=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042189966888000","endTimeUnixNano":"1763042190649032000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://en.wikipedia.org/api/rest_v1/page/summary/New%20York"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Vd7J6WeIkI0=","parentSpanId":"lAvl8cSGCdQ=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042190650755000","endTimeUnixNano":"1763042191744238000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://api.open-meteo.com/v1/forecast?latitude=40.7128\u0026longitude=-74.006\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\u0026timezone=auto\u0026forecast_days=7"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"QO7ZImsbB1g=","parentSpanId":"DRPQ4fXYGOk=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042191747300000","endTimeUnixNano":"1763042192786263000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://nominatim.openstreetmap.org/search?q=New+York\u0026format=json\u0026limit=1"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}}]}]}]}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '14143' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/9a8cb895bee63fabb705329a05ced33b + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"VVGqP3Zlh/I=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057714246000\",\"endTimeUnixNano\":\"1763042185226841000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ebIwige/t/I=\",\"parentSpanId\":\"VVGqP3Zlh/I=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057715150000\",\"endTimeUnixNano\":\"1763042185226760000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"XmMF4QV1t5I=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042160420265000\",\"endTimeUnixNano\":\"1763042185224042000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31f412c8193854f3d40a67569bb\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3203a048193a1db4cd095de78a1\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.19.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Malta' itinerary=TravelItinerary(trip_title='Malta: + A Luxurious Journey Through History and Culture', destination='Malta', duration_days=7, + total_budget_estimate='\u20AC5000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Valletta', activities=[DayActivity(time='10:00 AM', activity='Check + into the hotel.', location='Palazzo Consiglia, Valletta', notes='Luxurious + boutique hotel with a historic feel.'), DayActivity(time='12:00 PM', activity='Lunch + at the hotel restaurant.', location='Palazzo Consiglia', notes='Try local + specialties.'), DayActivity(time='2:00 PM', activity='Explore Valletta on + foot.', location='Valletta', notes=\\\"Visit St. John's Co-Cathedral and the + Upper Barracca Gardens.\\\"), DayActivity(time='5:00 PM', activity='Enjoy + a sunset at the Barracca Lift.', location='Upper Barracca Gardens', notes='Stunning + views of the Grand Harbour.'), DayActivity(time='7:30 PM', activity='Dinner + at The Harbour Club.', location='Valletta', notes='Fine dining with Mediterranean + cuisine.')], meals=['Lunch at Palazzo Consiglia', 'Dinner at The Harbour Club'], + accommodation='Palazzo Consiglia, Valletta'), DayPlan(day_number=2, date='2023-10-02', + title='Historical Wonders of Mdina', activities=[DayActivity(time='9:00 AM', + activity='Breakfast at the hotel.', location='Palazzo Consiglia', notes='Enjoy + a gourmet breakfast.'), DayActivity(time='10:30 AM', activity='Visit Mdina, + the Silent City.', location='Mdina', notes='Explore the narrow streets and + historic architecture.'), DayActivity(time='1:00 PM', activity='Lunch at Fontanella + Tea Garden.', location='Mdina', notes='Famous for its cakes and views.'), + DayActivity(time='3:00 PM', activity=\\\"Visit St. Paul's Cathedral and the + Mdina Dungeons.\\\", location='Mdina', notes='Immerse in the history of the + city.'), DayActivity(time='6:00 PM', activity='Return to Valletta.', location='Valletta', + notes='Free evening to relax.'), DayActivity(time='8:00 PM', activity='Dinner + at La Viletta.', location='Valletta', n\"}},{\"key\":\"gen_ai.prompt.19.tool_call_id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Paradise + Found: A Luxurious Escape to Barbados', destination='Barbados', duration_days=7, + total_budget_estimate='$5,000', daily_plans=[DayPlan(day_number=1, date='2023-11-01', + title='Arrival and Beach Relaxation', activities=[DayActivity(time='10:00 + AM', activity='Arrival at Grantley Adams International Airport', location='Bridgetown', + notes='Private transfer to hotel.'), DayActivity(time='12:00 PM', activity='Check-in + at Sandy Lane Hotel', location='Sandy Lane, St. James', notes='Enjoy a welcome + drink upon arrival.'), DayActivity(time='1:00 PM', activity='Lunch at The + Bajan Blue', location='Sandy Lane Hotel', notes='Try the fresh catch of the + day.'), DayActivity(time='3:00 PM', activity='Relax at the beach', location='Sandy + Lane Beach', notes='Enjoy complimentary beach services and cabanas.'), DayActivity(time='7:00 + PM', activity=\\\"Dinner at L'Acajou\\\", location='Sandy Lane Hotel', notes='Reserve + a table for an oceanfront dining experience.')], meals=['Lunch at The Bajan + Blue', \\\"Dinner at L'Acajou\\\"], accommodation='Sandy Lane Hotel'), DayPlan(day_number=2, + date='2023-11-02', title='Exploring the Nature and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at The Bajan Blue', location='Sandy Lane Hotel', + notes='Buffet breakfast included.'), DayActivity(time='9:30 AM', activity=\\\"Visit + Harrison's Cave\\\", location='Welches, St. Thomas', notes='Guided tram tour + of the limestone caves.'), DayActivity(time='12:00 PM', activity='Lunch at + The Cliff', location='The Cliff, St. James', notes='One of the best views + in Barbados.'), DayActivity(time='2:00 PM', activity='Explore the Andromeda + Botanic Gardens', location='Bathsheba', notes='Stroll through beautiful tropical + plants.'), DayActivity(time='5:00 PM', activity='Return to hotel and relax + by the pool', location='Sandy Lane Hotel', notes='Enjoy the sunset views.'), + DayActivity(time='8:00 PM', activity='Dinner at The Tides', location='Holetown', + notes='Fin\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a luxurious winter getaway itinerary for two amazing destinations: Malta and + Barbados. You can choose either for a memorable experience!\\n\\n### Malta: + A Luxurious Journey Through History and Culture\\n\\n#### Overview:\\n- **Duration:** + 7 Days\\n- **Budget:** \u20AC5000\\n- **Interests:** History, culture, relaxation\\n- + **Weather:** Partly cloudy, 14\xB0C to 25\xB0C\\n\\n#### Highlights:\\n- **Explore + Valletta:** Discover historic sites like St. John's Co-Cathedral and the Upper + Barracca Gardens.\\n- **Visit Mdina:** Wander through the narrow streets of + the Silent City.\\n- **Cruise the Blue Lagoon:** Relax and swim in crystal-clear + waters on Comino Island.\\n- **Art and Culture in Valletta:** Enjoy museums, + the Grand Master's Palace, and traditional Maltese cuisine.\\n- **Day in Gozo:** + Experience UNESCO sites and enjoy local cuisine in Xlendi Bay.\\n- **Relaxation + and Spa Day:** Indulge in luxury spa treatments and wine tasting.\\n\\n#### + Suggested Activities:\\n- Stroll through the National Museum of Archaeology.\\n- + Enjoy a Michelin-starred dining experience at Noni.\\n- Unwind at the historic + and luxurious Palazzo Consiglia.\\n\\n---\\n\\n### Barbados: Paradise Found\\n\\n#### + Overview:\\n- **Duration:** 7 Days\\n- **Budget:** $5,000\\n- **Interests:** + Beach, nature, relaxation\\n- **Weather:** Mainly clear with occasional rain, + 26\xB0C to 28\xB0C\\n\\n#### Highlights:\\n- **Stay at Sandy Lane:** Experience + luxury at a top-notch hotel.\\n- **Catamaran Cruise:** Snorkel and swim with + turtles.\\n- **Visit Harrison's Cave:** Explore stunning limestone formations.\\n- + **Beach Relaxation:** Enjoy water sports and sunbathing at Sandy Lane Beach.\\n- + **Cultural Sightseeing:** Visit the Barbados Museum and Andromeda Botanic + Gardens.\\n- **Island Adventure:** Discover the Animal Flower Cave and Bathsheba + Beach.\\n\\n#### Suggested Activities:\\n- Indulge in a private yoga session + on the beach.\\n- Savor local flavors at dining spots like The Cliff and Oistins + Fish Fry.\\n- Book a spa treatment for ultimate relaxation.\\n\\nChoose either + Malta for its rich history and culture or Barbados for its tropical para\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"6963\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"482\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7445\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"embCySXGZiM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057716128000\",\"endTimeUnixNano\":\"1763042059661983000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"60\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"525\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"mC8CCwLW76g=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663097000\",\"endTimeUnixNano\":\"1763042062451067000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ssDCKShkL44=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663477000\",\"endTimeUnixNano\":\"1763042062451172000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fuu6tO+Ndlo=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042062452499000\",\"endTimeUnixNano\":\"1763042064799092000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1003\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1055\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fvHJdvNTMws=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064799830000\",\"endTimeUnixNano\":\"1763042067739773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"T8dJZDmT4I4=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064800127000\",\"endTimeUnixNano\":\"1763042067739862000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"v6cWcKHOCjI=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042067741423000\",\"endTimeUnixNano\":\"1763042070448846000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1077\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"86\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1163\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"UEIsxC37pwE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449031000\",\"endTimeUnixNano\":\"1763042072801957000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"THKreibx8ug=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449103000\",\"endTimeUnixNano\":\"1763042072802080000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"YBTnmbTN6jE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042072803790000\",\"endTimeUnixNano\":\"1763042075107212000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1391\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1443\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"SxqLZKfWCmA=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108148000\",\"endTimeUnixNano\":\"1763042076670490000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"5dBBk3l1eiQ=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108516000\",\"endTimeUnixNano\":\"1763042076670556000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"cE+1FFJhlnU=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076671577000\",\"endTimeUnixNano\":\"1763042082126494000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1535\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"208\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1743\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"QAlZHx6RuLM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082127730000\",\"endTimeUnixNano\":\"1763042160416987000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"th2IYCV4hsE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082128207000\",\"endTimeUnixNano\":\"1763042160417136000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HDPGse/8x4o=\",\"parentSpanId\":\"mC8CCwLW76g=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042060166394000\",\"endTimeUnixNano\":\"1763042061283475000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"IA+JMvfXJl8=\",\"parentSpanId\":\"ssDCKShkL44=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042061306153000\",\"endTimeUnixNano\":\"1763042062439682000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"PzmXYx0yNzo=\",\"parentSpanId\":\"fvHJdvNTMws=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042065903652000\",\"endTimeUnixNano\":\"1763042066847763000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Malta\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ON9RLT3j6a4=\",\"parentSpanId\":\"T8dJZDmT4I4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042066849545000\",\"endTimeUnixNano\":\"1763042067737708000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"M2Q2FV2cXIU=\",\"parentSpanId\":\"UEIsxC37pwE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042070951475000\",\"endTimeUnixNano\":\"1763042071877256000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=35.8885993\\u0026longitude=14.4476911\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Ze33HN9DUpc=\",\"parentSpanId\":\"THKreibx8ug=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042071879722000\",\"endTimeUnixNano\":\"1763042072800019000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HKpm5tCLJzU=\",\"parentSpanId\":\"SxqLZKfWCmA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042075611055000\",\"endTimeUnixNano\":\"1763042076145487000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Malta\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"lAzYqhlHfpg=\",\"parentSpanId\":\"5dBBk3l1eiQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076148467000\",\"endTimeUnixNano\":\"1763042076669422000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Znd3vlNcirg=\",\"parentSpanId\":\"th2IYCV4hsE=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042123087205000\",\"endTimeUnixNano\":\"1763042160414874000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: beach, nature, relaxation\\n- Weather: Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\n- Destination Info: Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the luxury budget level and beach, nature, + relaxation interests.\\nEach day should have 3-5 activities with specific + times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS5EtpivASLkttPJzZ83ik15FlLX\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2260\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1719\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"541\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Paradise + Found: A Luxurious Escape to Barbados\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$5,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-01\\\",\\\"title\\\":\\\"Arrival + and Beach Relaxation\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrival + at Grantley Adams International Airport\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Private + transfer to hotel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at Sandy Lane Hotel\\\",\\\"location\\\":\\\"Sandy Lane, St. James\\\",\\\"notes\\\":\\\"Enjoy + a welcome drink upon arrival.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Try + the fresh catch of the day.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at the beach\\\",\\\"location\\\":\\\"Sandy Lane Beach\\\",\\\"notes\\\":\\\"Enjoy + complimentary beach services and cabanas.\\\"},{\\\"time\\\":\\\"7:00 PM\\\",\\\"activity\\\":\\\"Dinner + at L'Acajou\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Reserve + a table for an oceanfront dining experience.\\\"}],\\\"meals\\\":[\\\"Lunch + at The Bajan Blue\\\",\\\"Dinner at L'Acajou\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-02\\\",\\\"title\\\":\\\"Exploring + the Nature and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Buffet + breakfast included.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Harrison's Cave\\\",\\\"location\\\":\\\"Welches, St. Thomas\\\",\\\"notes\\\":\\\"Guided + tram tour of the limestone caves.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Cliff\\\",\\\"location\\\":\\\"The Cliff, St. James\\\",\\\"notes\\\":\\\"One + of the best views in Barbados.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + the Andromeda Botanic Gardens\\\",\\\"location\\\":\\\"Bathsheba\\\",\\\"notes\\\":\\\"Stroll + through beautiful tropical plants.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to hotel and relax by the pool\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Enjoy + the sunset views.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Tides\\\",\\\"location\\\":\\\"Holetown\\\",\\\"notes\\\":\\\"Fine + dining with a local twist.\\\"}],\\\"meals\\\":[\\\"Breakfast at The Bajan + Blue\\\",\\\"Lunch at The Cliff\\\",\\\"Dinner at The Tides\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"BVSE4lyy6Ng=\",\"parentSpanId\":\"QAlZHx6RuLM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042082648743000\",\"endTimeUnixNano\":\"1763042123074678000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Malta.\\n\\nTrip + Details:\\n- Destination: Malta\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: history, culture, relaxation\\n- Weather: Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\n- Destination Info: Malta is an island country + in Southern Europe, located in the Mediterranean Sea. The country's capital, + Valletta, is a historic city rich in culture and architecture. Official languages + are Maltese and English.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the luxury budget level and history, culture, relaxation interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS4aBtO0u5Rq9bvPgdgOeSH0n75R\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2342\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1792\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"550\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Malta: + A Luxurious Journey Through History and Culture\\\",\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC5000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Valletta\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia, Valletta\\\",\\\"notes\\\":\\\"Luxurious + boutique hotel with a historic feel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Try + local specialties.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + Valletta on foot.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Visit + St. John's Co-Cathedral and the Upper Barracca Gardens.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a sunset at the Barracca Lift.\\\",\\\"location\\\":\\\"Upper + Barracca Gardens\\\",\\\"notes\\\":\\\"Stunning views of the Grand Harbour.\\\"},{\\\"time\\\":\\\"7:30 + PM\\\",\\\"activity\\\":\\\"Dinner at The Harbour Club.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Fine + dining with Mediterranean cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Palazzo + Consiglia\\\",\\\"Dinner at The Harbour Club\\\"],\\\"accommodation\\\":\\\"Palazzo + Consiglia, Valletta\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Historical + Wonders of Mdina\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Enjoy + a gourmet breakfast.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Visit + Mdina, the Silent City.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Explore + the narrow streets and historic architecture.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Fontanella Tea Garden.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Famous + for its cakes and views.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + St. Paul's Cathedral and the Mdina Dungeons.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Immerse + in the history of the city.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Return + to Valletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Free + evening to relax.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at La Viletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Authentic + Maltese cuisine.\\\"}],\\\"meals\\\":[\\\"Breakfast at Palazzo Consiglia\\\",\\\"Lunch + at Fontanella Tea Garden\\\",\\\"Dinner at La Viletta\\\"],\\\"accommodation\\\":\\\"Palazzo\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '127530' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/693bde2879b745ff467c20bf9cd2ea7a + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"pApb0LsOSf0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984002122000\",\"endTimeUnixNano\":\"1763042055706374000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Ty846xocHPs=\",\"parentSpanId\":\"pApb0LsOSf0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984003244000\",\"endTimeUnixNano\":\"1763042055706244000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"r4Bxnys8Ajs=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042004652154000\",\"endTimeUnixNano\":\"1763042043092842000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"dvw9i3v4lK0=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042043095808000\",\"endTimeUnixNano\":\"1763042055704401000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2d2455c81978681b90b08ba66c7\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Nature + \\u0026 Adventure in New Zealand: A Week of Wonders', destination='New Zealand', + duration_days=7, total_budget_estimate='$1,500 - $2,000', daily_plans=[DayPlan(day_number=1, + date='2023-10-01', title='Arrival in Auckland', activities=[DayActivity(time='10:00 + AM', activity='Arrive at Auckland Airport', location='Auckland Airport', notes='Collect + rental car from the airport.'), DayActivity(time='12:00 PM', activity='Lunch + at Depot Eatery', location='Auckland', notes='Try local favorites like the + green-lipped mussels.'), DayActivity(time='2:00 PM', activity='Visit Auckland + War Memorial Museum', location='Domain Drive, Auckland', notes='Explore Maori + culture and New Zealand\u2019s natural history.'), DayActivity(time='4:00 + PM', activity='Stroll in Auckland Domain', location='Auckland', notes='Enjoy + the gardens and scenic views.'), DayActivity(time='6:00 PM', activity='Dinner + at The Glass Goose Bar \\u0026 Eatery', location='Auckland', notes='Outdoor + seating available.')], meals=['Lunch at Depot Eatery', 'Dinner at The Glass + Goose Bar \\u0026 Eatery'], accommodation='SkyCity Hotel, Auckland'), DayPlan(day_number=2, + date='2023-10-02', title='Exploring Rotorua', activities=[DayActivity(time='8:00 + AM', activity='Drive to Rotorua', location='Auckland to Rotorua (approx. 3 + hours)', notes='Enjoy scenic views along the way.'), DayActivity(time='11:00 + AM', activity='Visit Te Puia', location='Rotorua', notes='See geysers and + learn about Maori culture.'), DayActivity(time='1:00 PM', activity='Lunch + at Puku Puku Caf\xE9', location='Rotorua', notes='Sample local dishes.'), + DayActivity(time='3:00 PM', activity='Relax in the Polynesian Spa', location='Rotorua', + notes='Enjoy geothermal pools.'), DayActivity(time='6:00 PM', activity='Dinner + at Eat Streat', location='Rotorua', notes='Choose from various food stalls.')], + meals=['Lunch at Puku Puku Caf\xE9', 'Dinner at Eat Streat'], accommodation='Regent + of Rotorua'), DayPlan(day_number=3, date='2023-1\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"### + Nature \\u0026 Adventure in New Zealand: A Week of Wonders\\n\\n#### Destination: + New Zealand\\n- **Duration:** 7 Days\\n- **Budget:** Moderate ($1,500 - $2,000)\\n- + **Interests:** Nature, Adventure, Culture\\n\\n#### Weather Insights\\n- Current + conditions are overcast with a temperature of 7.6\xB0C.\\n- Expect mild temperatures + with some precipitation next week, ranging from 4\xB0C to 22\xB0C.\\n\\n#### + Trip Overview\\n\\n**Day 1: Arrival in Auckland**\\n- **10:00 AM:** Arrive + at Auckland Airport - Collect rental car.\\n- **12:00 PM:** Lunch at Depot + Eatery - Try local green-lipped mussels.\\n- **2:00 PM:** Visit Auckland War + Memorial Museum - Explore Maori culture.\\n- **4:00 PM:** Stroll in Auckland + Domain - Enjoy gardens and views.\\n- **6:00 PM:** Dinner at The Glass Goose + Bar \\u0026 Eatery.\\n- **Accommodation:** SkyCity Hotel, Auckland\\n\\n**Day + 2: Exploring Rotorua**\\n- **8:00 AM:** Drive to Rotorua (3 hours).\\n- **11:00 + AM:** Visit Te Puia - See geysers and Maori culture.\\n- **1:00 PM:** Lunch + at Puku Puku Caf\xE9 - Sample local dishes.\\n- **3:00 PM:** Relax in Polynesian + Spa - Enjoy geothermal pools.\\n- **6:00 PM:** Dinner at Eat Streat.\\n- **Accommodation:** + Regent of Rotorua\\n\\n**Day 3: Adventure in Taupo**\\n- **8:00 AM:** Drive + to Taupo (1 hour).\\n- **10:00 AM:** Visit Huka Falls.\\n- **12:00 PM:** Lunch + at The Boat Shed Caf\xE9.\\n- **2:00 PM:** Skydiving or Jet Boating - Book + in advance.\\n- **5:00 PM:** Relax at Taupo Lake Front.\\n- **Accommodation:** + Millennium Hotel Taupo\\n\\n**Day 4: Tongariro National Park**\\n- **7:00 + AM:** Drive to Tongariro (1 hour).\\n- **8:30 AM:** Begin Tongariro Alpine + Crossing - Full-day hike.\\n- **12:00 PM:** Lunch on the trail - Pack a picnic.\\n- + **4:00 PM:** Complete hike - Stunning views.\\n- **6:00 PM:** Dinner at a + local lodge.\\n- **Accommodation:** Chateau Tongariro Hotel\\n\\n**Day 5: + Wellington Culture Day**\\n- **8:00 AM:** Drive to Wellington (4 hours).\\n- + **12:00 PM:** Lunch at Fidel's Caf\xE9.\\n- **2:00 PM:** Visit Te Papa Tongarewa + Museum - Free entry.\\n- **4:00 PM:** Walk along Wellington Waterfront.\\n- + **6:00 PM:** Dinner at Ortega Fish Shack.\\n- **A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4339\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"846\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5185\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"IS6vpvXSyWc=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984005653000\",\"endTimeUnixNano\":\"1763041985613511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"936\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"959\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"brUFs0ciw1M=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041985613918000\",\"endTimeUnixNano\":\"1763041987102501000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Irx+5vAh2RA=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041987103912000\",\"endTimeUnixNano\":\"1763041990567857000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"801\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8D1wUHRUnJY=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568009000\",\"endTimeUnixNano\":\"1763041993540330000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Z0YMsVUAJiE=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568056000\",\"endTimeUnixNano\":\"1763041993540426000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"YOs61ryvpF4=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041993541968000\",\"endTimeUnixNano\":\"1763041995719255000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"876\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"84\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"960\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"4JCF5eBk2tQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719607000\",\"endTimeUnixNano\":\"1763041998146609000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ixR9+7Z/j1o=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719759000\",\"endTimeUnixNano\":\"1763041998146773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8mbS0moocyI=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041998148255000\",\"endTimeUnixNano\":\"1763041999477499000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2374\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"18\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2392\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ZXf5rcFUcLQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041999478441000\",\"endTimeUnixNano\":\"1763042000768653000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"1qbdTW8b/2E=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042000769229000\",\"endTimeUnixNano\":\"1763042004651429000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2545\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2687\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"NKOz3ltzNm0=\",\"parentSpanId\":\"r4Bxnys8Ajs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042005169975000\",\"endTimeUnixNano\":\"1763042043090298000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: nature, adventure, culture\\n- Weather: Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\n- Destination Info: New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It's known for varied topography and sharp mountain peaks, + including the Southern Alps. The capital city is Wellington, and its most + populous city is Auckland.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and nature, adventure, culture interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS3K2CF576d4YsisW6wGQEds7rmH\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2169\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1573\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"596\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Nature + \\u0026 Adventure in New Zealand: A Week of Wonders\\\",\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500 + - $2,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + rental car from the airport.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Depot Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Try + local favorites like the green-lipped mussels.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Domain + Drive, Auckland\\\",\\\"notes\\\":\\\"Explore Maori culture and New Zealand\u2019s + natural history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Stroll + in Auckland Domain\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Enjoy + the gardens and scenic views.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Outdoor + seating available.\\\"}],\\\"meals\\\":[\\\"Lunch at Depot Eatery\\\",\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + Rotorua\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Rotorua\\\",\\\"location\\\":\\\"Auckland to Rotorua (approx. 3 hours)\\\",\\\"notes\\\":\\\"Enjoy + scenic views along the way.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit + Te Puia\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"See geysers + and learn about Maori culture.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Puku Puku Caf\xE9\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Sample + local dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + in the Polynesian Spa\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Enjoy + geothermal pools.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Eat Streat\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Choose + from various food stalls.\\\"}],\\\"meals\\\":[\\\"Lunch at Puku Puku Caf\xE9\\\",\\\"Dinner + at Eat Streat\\\"],\\\"accommodation\\\":\\\"Regent of Rotorua\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Adventure + in Taupo\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Taupo\\\",\\\"location\\\":\\\"Rotorua to Taupo (approx. 1 hour)\\\",\\\"notes\\\":\\\"Stop + at Huk\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"056VGM+8Nok=\",\"parentSpanId\":\"brUFs0ciw1M=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041986115747000\",\"endTimeUnixNano\":\"1763041987094583000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"kvjaqj4KYrQ=\",\"parentSpanId\":\"8D1wUHRUnJY=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041991671179000\",\"endTimeUnixNano\":\"1763041992478589000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"u+rad2kmPnI=\",\"parentSpanId\":\"Z0YMsVUAJiE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041992480116000\",\"endTimeUnixNano\":\"1763041993538494000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ETHKBPTcA2s=\",\"parentSpanId\":\"4JCF5eBk2tQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041996225152000\",\"endTimeUnixNano\":\"1763041997195369000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"jQ6zmabmw2M=\",\"parentSpanId\":\"ixR9+7Z/j1o=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041997198300000\",\"endTimeUnixNano\":\"1763041998144145000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"0YqSiXc6Hig=\",\"parentSpanId\":\"ZXf5rcFUcLQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041999981250000\",\"endTimeUnixNano\":\"1763042000767913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '98254' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/eed63641fc3ffa3ea40a166e2604edd2 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"kDfoXagrNmk=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306563000\",\"endTimeUnixNano\":\"1763041981994302000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"5t6oCNV1x24=\",\"parentSpanId\":\"kDfoXagrNmk=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306752000\",\"endTimeUnixNano\":\"1763041981994217000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"CPDw9H+t3W0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041900556562000\",\"endTimeUnixNano\":\"1763041909681624000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are some great beach destinations for families in the Americas to consider:\\n\\n1. + **Barbados (Caribbean)**\\n - Language: English\\n - Currency: BBD\\n + \ - Known for its beautiful sandy beaches and vibrant culture.\\n\\n2. **Puerto + Rico (Caribbean)**\\n - Languages: English, Spanish\\n - Currency: USD\\n + \ - Offers lovely beaches, lush rainforests, and a rich cultural heritage.\\n\\n3. + **Turks and Caicos Islands (Caribbean)**\\n - Language: English\\n - Currency: + USD\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\n\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\n\\nI'll gather weather + information and details about Barbados and then create your itinerary.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"664\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"221\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"885\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"gjU8x51ljN8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909682975000\",\"endTimeUnixNano\":\"1763041912228857000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"saPJCTZOa8E=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909683354000\",\"endTimeUnixNano\":\"1763041912228748000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"v4pJsgk8eu8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041912233276000\",\"endTimeUnixNano\":\"1763041916478547000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1859\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"37\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1896\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vW7dC7113KM=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041916479365000\",\"endTimeUnixNano\":\"1763041923081358000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"S5LEq3ro4i0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041923083562000\",\"endTimeUnixNano\":\"1763041926952714000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2178\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"127\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2305\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"0revCekYick=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041926953355000\",\"endTimeUnixNano\":\"1763041968277636000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"awXbMZjA1IQ=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041968278645000\",\"endTimeUnixNano\":\"1763041981992200000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e284b4408193b787ece129274ff2\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Beach + Bliss in Barbados: A 7-Day Tropical Escape', destination='Barbados', duration_days=7, + total_budget_estimate='$1,500', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and Beach Day', activities=[DayActivity(time='12:00 PM', activity='Check-in + at hotel', location='Turtle Beach by Elegant Hotels', notes='Enjoy welcome + drinks and settle into your room.'), DayActivity(time='1:30 PM', activity='Lunch + at the hotel restaurant', location='Turtle Beach', notes='Try the grilled + fish with local spices.'), DayActivity(time='3:00 PM', activity='Relax at + Dover Beach', location='Dover Beach', notes='Beach chairs and umbrellas available + for rent.'), DayActivity(time='6:00 PM', activity='Sunset viewing', location='Dover + Beach', notes='Perfect spot for photos.'), DayActivity(time='7:30 PM', activity='Dinner + at The Oistins Fish Fry', location='Oistins', notes='A vibrant atmosphere + with fresh seafood.')], meals=['Lunch at Turtle Beach', 'Dinner at Oistins + Fish Fry'], accommodation='Turtle Beach by Elegant Hotels'), DayPlan(day_number=2, + date='2023-10-02', title='Explore Bridgetown', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at the hotel', location='Turtle Beach', notes='Buffet + style with local and international options.'), DayActivity(time='9:30 AM', + activity='Visit the Barbados Museum \\u0026 Historical Society', location='Bridgetown', + notes=\\\"Learn about the island's history.\\\"), DayActivity(time='12:00 + PM', activity='Lunch at Brown Sugar', location='Bridgetown', notes='Taste + local dishes in an outdoor setting.'), DayActivity(time='2:00 PM', activity='Explore + George Street and local shops', location='Bridgetown', notes='Pick up souvenirs + and local crafts.'), DayActivity(time='4:00 PM', activity='Relax at Pebbles + Beach', location='Pebbles Beach', notes='Enjoy swimming and sunbathing.'), + DayActivity(time='6:00 PM', activity='Dinner at The Cliff', location='St. + James', notes='Reservations recommend\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for your family vacation in Barbados, focusing + on beach activities and cultural experiences:\\n\\n### Trip Title: Beach Bliss + in Barbados: A 7-Day Tropical Escape\\n\\n#### **Day 1: Arrival and Beach + Day**\\n- **12:00 PM:** Check-in at Turtle Beach by Elegant Hotels. Enjoy + welcome drinks and settle in.\\n- **1:30 PM:** Lunch at the hotel restaurant. + Try the grilled fish with local spices.\\n- **3:00 PM:** Relax at Dover Beach. + Beach chairs and umbrellas available.\\n- **6:00 PM:** Enjoy a sunset viewing + at Dover Beach\u2014perfect for photos.\\n- **7:30 PM:** Dinner at The Oistins + Fish Fry. Vibrant atmosphere with fresh seafood.\\n\\n#### **Day 2: Explore + Bridgetown**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** + Visit the Barbados Museum \\u0026 Historical Society. Learn about the island's + history.\\n- **12:00 PM:** Lunch at Brown Sugar. Taste local dishes.\\n- **2:00 + PM:** Explore George Street and local shops for souvenirs.\\n- **4:00 PM:** + Relax at Pebbles Beach. Enjoy swimming and sunbathing.\\n- **6:00 PM:** Dinner + at The Cliff. Stunning ocean views, reservations recommended.\\n\\n#### **Day + 3: Catamaran Adventure**\\n- **7:30 AM:** Breakfast at Turtle Beach.\\n- **9:00 + AM:** Catamaran cruise from Bridgetown. Swim with turtles and snorkel at coral + reefs.\\n- **12:30 PM:** Lunch on board the catamaran.\\n- **3:00 PM:** Return + to the hotel, relax at the beach or pool.\\n- **7:00 PM:** Dinner at The Round + House in Bathsheba. Try local fish dishes.\\n\\n#### **Day 4: Beach Hopping**\\n- + **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** Visit Crane Beach. + Famous for its pink sand.\\n- **12:00 PM:** Lunch at The Crane Beach Resort.\\n- + **2:00 PM:** Head to Bottom Bay Beach. Less crowded and perfect for relaxation.\\n- + **5:00 PM:** Return to hotel.\\n- **7:30 PM:** Dinner at Naru Restaurant and + Lounge. Local and Asian fusion cuisine.\\n\\n#### **Day 5: Island Culture + and Relaxation**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **10:00 AM:** + Visit St. Nicholas Abbey. Tour the plantation and rum distillery.\\n- **1:00 + PM:** Lunch at the A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4121\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"842\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4963\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vSd7s42xrTw=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894311147000\",\"endTimeUnixNano\":\"1763041898739189000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"932\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"22\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"954\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"dkkP9YWRUaI=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041898739699000\",\"endTimeUnixNano\":\"1763041900553722000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"jB510DMs6/8=\",\"parentSpanId\":\"saPJCTZOa8E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910186602000\",\"endTimeUnixNano\":\"1763041910919083000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"I4smyApmv2I=\",\"parentSpanId\":\"gjU8x51ljN8=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910919911000\",\"endTimeUnixNano\":\"1763041912227844000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wsif3cTB5R0=\",\"parentSpanId\":\"vW7dC7113KM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041916984585000\",\"endTimeUnixNano\":\"1763041923078888000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"T263X02AHSc=\",\"parentSpanId\":\"dkkP9YWRUaI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041899242488000\",\"endTimeUnixNano\":\"1763041900545636000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wJnvML6OlKo=\",\"parentSpanId\":\"0revCekYick=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041927471141000\",\"endTimeUnixNano\":\"1763041968276800000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: beaches\\n- Weather: Current temperature 27.4\xB0C, mainly clear + conditions. Forecast: mostly warm weather with some rain expected later in + the week.\\n- Destination Info: Barbados is an island country in the Caribbean + located in the Atlantic Ocean. It is part of the Lesser Antilles of the West + Indies and the easternmost island of the Caribbean region. It lies on the + boundary of the South American and Caribbean plates. Its capital and largest + city is Bridgetown.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and beaches interests.\\nEach day should have 3-5 + activities with specific times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS25L4VnHyasIegXuwEirm30SBWf\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2288\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1717\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"571\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Beach + Bliss in Barbados: A 7-Day Tropical Escape\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Beach Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at hotel\\\",\\\"location\\\":\\\"Turtle Beach by Elegant Hotels\\\",\\\"notes\\\":\\\"Enjoy + welcome drinks and settle into your room.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Try + the grilled fish with local spices.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at Dover Beach\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Beach + chairs and umbrellas available for rent.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Sunset + viewing\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Perfect + spot for photos.\\\"},{\\\"time\\\":\\\"7:30 PM\\\",\\\"activity\\\":\\\"Dinner + at The Oistins Fish Fry\\\",\\\"location\\\":\\\"Oistins\\\",\\\"notes\\\":\\\"A + vibrant atmosphere with fresh seafood.\\\"}],\\\"meals\\\":[\\\"Lunch at Turtle + Beach\\\",\\\"Dinner at Oistins Fish Fry\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Explore + Bridgetown\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Buffet + style with local and international options.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + the Barbados Museum \\u0026 Historical Society\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Learn + about the island's history.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Brown Sugar\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Taste + local dishes in an outdoor setting.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + George Street and local shops\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Pick + up souvenirs and local crafts.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Relax + at Pebbles Beach\\\",\\\"location\\\":\\\"Pebbles Beach\\\",\\\"notes\\\":\\\"Enjoy + swimming and sunbathing.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Cliff\\\",\\\"location\\\":\\\"St. James\\\",\\\"notes\\\":\\\"Reservations + recommended for stunning ocean views.\\\"}],\\\"meals\\\":[\\\"Breakfast at + Turtle Beach\\\",\\\"Lunch at Brown Sugar\\\",\\\"Dinner at The Cliff\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '79035' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_operation.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_operation.yaml new file mode 100644 index 0000000..2550a07 --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_operation.yaml @@ -0,0 +1,69 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B%7D&limit=1000 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}},{"traceID":"b37b4c7727a54482f8c71cb88799c108","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042214208334000","durationMs":74124,"spanSet":{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18},"spanSets":[{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18}],"serviceStats":{"travel-agent-demo2":{"spanCount":18}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"43192","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Vary: + - Accept-Encoding + content-length: + - '6560' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B+resource.service.name+%3D+%22travel-agent-demo%22+%7D&limit=100 + response: + body: + string: '{"traces":[],"metrics":{"inspectedBytes":"38573","completedJobs":1,"totalJobs":1}}' + headers: + Content-Length: + - '82' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:45 GMT + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_service_filter.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_service_filter.yaml new file mode 100644 index 0000000..ca404e2 --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoSearchTraces.test_search_traces_with_service_filter.yaml @@ -0,0 +1,2707 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B%7D&limit=1000 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}},{"traceID":"b37b4c7727a54482f8c71cb88799c108","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042214208334000","durationMs":74124,"spanSet":{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18},"spanSets":[{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18}],"serviceStats":{"travel-agent-demo2":{"spanCount":18}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"43192","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Vary: + - Accept-Encoding + content-length: + - '6560' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B+resource.service.name+%3D+%22travel-agent-demo%22+%7D&limit=10 + response: + body: + string: '{"traces":[{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"59731","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Vary: + - Accept-Encoding + content-length: + - '5763' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/42ff472d7feb6215bec0cf4e350675b2 + response: + body: + string: '{"batches":[{"resource":{"attributes":[{"key":"telemetry.sdk.language","value":{"stringValue":"python"}},{"key":"telemetry.sdk.name","value":{"stringValue":"opentelemetry"}},{"key":"telemetry.sdk.version","value":{"stringValue":"1.38.0"}},{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},"scopeSpans":[{"scope":{"name":"opentelemetry.instrumentation.openai_agents","version":"0.47.5"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"NPzxuz+vo54=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187236891000","endTimeUnixNano":"1763042189460181000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"gen_ai.prompt.0.role","value":{"stringValue":"user"}},{"key":"gen_ai.prompt.0.content","value":{"stringValue":"I + want to visit New York for 7 days with a moderate budget. I love history. + Create me an itinerary."}},{"key":"llm.request.functions.0.name","value":{"stringValue":"search_destinations"}},{"key":"llm.request.functions.0.description","value":{"stringValue":"Search + for travel destinations by region or subregion using REST Countries API."}},{"key":"llm.request.functions.0.parameters","value":{"stringValue":"{\"properties\": + {\"region\": {\"default\": \"\", \"description\": \"Region to search (e.g., + \\\"Europe\\\", \\\"Asia\\\", \\\"Americas\\\")\", \"title\": \"Region\", + \"type\": \"string\"}, \"subregion\": {\"default\": \"\", \"description\": + \"Subregion to search (e.g., \\\"Southern Europe\\\", \\\"Southeast Asia\\\")\", + \"title\": \"Subregion\", \"type\": \"string\"}}, \"title\": \"search_destinations_args\", + \"type\": \"object\", \"additionalProperties\": false, \"required\": [\"region\", + \"subregion\"]}"}},{"key":"llm.request.functions.1.name","value":{"stringValue":"get_location_coordinates"}},{"key":"llm.request.functions.1.description","value":{"stringValue":"Get + coordinates for a location using Nominatim (OpenStreetMap) API."}},{"key":"llm.request.functions.1.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the city or location\", \"title\": + \"Location Name\", \"type\": \"string\"}}, \"required\": [\"location_name\"], + \"title\": \"get_location_coordinates_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.2.name","value":{"stringValue":"get_weather_forecast"}},{"key":"llm.request.functions.2.description","value":{"stringValue":"Get + current weather and 7-day forecast using Open-Meteo API (no API key required)."}},{"key":"llm.request.functions.2.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the location\", \"title\": + \"Location Name\", \"type\": \"string\"}, \"latitude\": {\"description\": + \"Latitude coordinate\", \"title\": \"Latitude\", \"type\": \"number\"}, \"longitude\": + {\"description\": \"Longitude coordinate\", \"title\": \"Longitude\", \"type\": + \"number\"}}, \"required\": [\"location_name\", \"latitude\", \"longitude\"], + \"title\": \"get_weather_forecast_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.3.name","value":{"stringValue":"get_destination_info"}},{"key":"llm.request.functions.3.description","value":{"stringValue":"Get + information about a destination from Wikipedia API."}},{"key":"llm.request.functions.3.parameters","value":{"stringValue":"{\"properties\": + {\"destination_name\": {\"description\": \"Name of the destination\", \"title\": + \"Destination Name\", \"type\": \"string\"}}, \"required\": [\"destination_name\"], + \"title\": \"get_destination_info_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.4.name","value":{"stringValue":"calculate_travel_distance"}},{"key":"llm.request.functions.4.description","value":{"stringValue":"Calculate + distance and estimated flight time between two locations.\nUses Haversine + formula for distance calculation."}},{"key":"llm.request.functions.4.parameters","value":{"stringValue":"{\"properties\": + {\"from_location\": {\"description\": \"Starting location name\", \"title\": + \"From Location\", \"type\": \"string\"}, \"to_location\": {\"description\": + \"Destination location name\", \"title\": \"To Location\", \"type\": \"string\"}, + \"from_lat\": {\"description\": \"Starting latitude\", \"title\": \"From Lat\", + \"type\": \"number\"}, \"from_lon\": {\"description\": \"Starting longitude\", + \"title\": \"From Lon\", \"type\": \"number\"}, \"to_lat\": {\"description\": + \"Destination latitude\", \"title\": \"To Lat\", \"type\": \"number\"}, \"to_lon\": + {\"description\": \"Destination longitude\", \"title\": \"To Lon\", \"type\": + \"number\"}}, \"required\": [\"from_location\", \"to_location\", \"from_lat\", + \"from_lon\", \"to_lat\", \"to_lon\"], \"title\": \"calculate_travel_distance_args\", + \"type\": \"object\", \"additionalProperties\": false}"}},{"key":"llm.request.functions.5.name","value":{"stringValue":"create_itinerary"}},{"key":"llm.request.functions.5.description","value":{"stringValue":"Create + a detailed day-by-day travel itinerary using AI."}},{"key":"llm.request.functions.5.parameters","value":{"stringValue":"{\"properties\": + {\"destination\": {\"description\": \"Main destination for the trip\", \"title\": + \"Destination\", \"type\": \"string\"}, \"duration_days\": {\"description\": + \"Number of days for the trip\", \"title\": \"Duration Days\", \"type\": \"integer\"}, + \"budget\": {\"description\": \"Budget level (budget, moderate, luxury)\", + \"title\": \"Budget\", \"type\": \"string\"}, \"interests\": {\"description\": + \"Traveler interests (e.g., food, history, nature)\", \"title\": \"Interests\", + \"type\": \"string\"}, \"weather_info\": {\"default\": \"\", \"description\": + \"Weather forecast information (optional)\", \"title\": \"Weather Info\", + \"type\": \"string\"}, \"destination_details\": {\"default\": \"\", \"description\": + \"Additional destination details (optional)\", \"title\": \"Destination Details\", + \"type\": \"string\"}}, \"required\": [\"destination\", \"duration_days\", + \"budget\", \"interests\", \"weather_info\", \"destination_details\"], \"title\": + \"create_itinerary_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"gen_ai.request.temperature","value":{"doubleValue":1}},{"key":"gen_ai.request.top_p","value":{"doubleValue":1}},{"key":"gen_ai.request.model","value":{"stringValue":"gpt-4o-2024-08-06"}},{"key":"gen_ai.completion.0.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.0.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.0.tool_calls.0.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.0.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\"}"}},{"key":"gen_ai.completion.0.tool_calls.0.id","value":{"stringValue":"call_M6Cz1ZtgBBRVhPAKwGhP4HkH"}},{"key":"gen_ai.completion.1.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.1.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.1.tool_calls.0.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.1.tool_calls.0.arguments","value":{"stringValue":"{\"destination_name\":\"New + York\"}"}},{"key":"gen_ai.completion.1.tool_calls.0.id","value":{"stringValue":"call_XjU0qIs2w9toMdl7I78qNPRd"}},{"key":"gen_ai.completion.2.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.2.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.2.tool_calls.0.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.2.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\",\"latitude\":40.7128,\"longitude\":-74.006}"}},{"key":"gen_ai.completion.2.tool_calls.0.id","value":{"stringValue":"call_vW1iVMpxm4W5VAjz3uvhFwxl"}},{"key":"gen_ai.usage.prompt_tokens","value":{"intValue":"313"}},{"key":"gen_ai.usage.completion_tokens","value":{"intValue":"81"}},{"key":"llm.usage.total_tokens","value":{"intValue":"394"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Jn+55BUIsg8=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042192790536000","endTimeUnixNano":"1763042197342144000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"qUtAVv3MWrg=","parentSpanId":"i9g02JupVjo=","name":"Travel + Planner Agent.agent","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187234430000","endTimeUnixNano":"1763042197342199000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"agent"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"i9g02JupVjo=","name":"Agent + Workflow","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187232503000","endTimeUnixNano":"1763042197342213000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"workflow"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.workflow.name","value":{"stringValue":"Agent + Workflow"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"ndtaGw2O47w=","parentSpanId":"qUtAVv3MWrg=","name":"get_destination_info.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461414000","endTimeUnixNano":"1763042192787831000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"lAvl8cSGCdQ=","parentSpanId":"qUtAVv3MWrg=","name":"get_weather_forecast.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461614000","endTimeUnixNano":"1763042192787979000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"DRPQ4fXYGOk=","parentSpanId":"qUtAVv3MWrg=","name":"get_location_coordinates.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461045000","endTimeUnixNano":"1763042192788272000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}}]},{"scope":{"name":"opentelemetry.instrumentation.requests","version":"0.59b0"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"gvjOX9XKnIQ=","parentSpanId":"ndtaGw2O47w=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042189966888000","endTimeUnixNano":"1763042190649032000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://en.wikipedia.org/api/rest_v1/page/summary/New%20York"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Vd7J6WeIkI0=","parentSpanId":"lAvl8cSGCdQ=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042190650755000","endTimeUnixNano":"1763042191744238000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://api.open-meteo.com/v1/forecast?latitude=40.7128\u0026longitude=-74.006\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\u0026timezone=auto\u0026forecast_days=7"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"QO7ZImsbB1g=","parentSpanId":"DRPQ4fXYGOk=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042191747300000","endTimeUnixNano":"1763042192786263000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://nominatim.openstreetmap.org/search?q=New+York\u0026format=json\u0026limit=1"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}}]}]}]}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '14143' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/9a8cb895bee63fabb705329a05ced33b + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"VVGqP3Zlh/I=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057714246000\",\"endTimeUnixNano\":\"1763042185226841000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ebIwige/t/I=\",\"parentSpanId\":\"VVGqP3Zlh/I=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057715150000\",\"endTimeUnixNano\":\"1763042185226760000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"XmMF4QV1t5I=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042160420265000\",\"endTimeUnixNano\":\"1763042185224042000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31f412c8193854f3d40a67569bb\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3203a048193a1db4cd095de78a1\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.19.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Malta' itinerary=TravelItinerary(trip_title='Malta: + A Luxurious Journey Through History and Culture', destination='Malta', duration_days=7, + total_budget_estimate='\u20AC5000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Valletta', activities=[DayActivity(time='10:00 AM', activity='Check + into the hotel.', location='Palazzo Consiglia, Valletta', notes='Luxurious + boutique hotel with a historic feel.'), DayActivity(time='12:00 PM', activity='Lunch + at the hotel restaurant.', location='Palazzo Consiglia', notes='Try local + specialties.'), DayActivity(time='2:00 PM', activity='Explore Valletta on + foot.', location='Valletta', notes=\\\"Visit St. John's Co-Cathedral and the + Upper Barracca Gardens.\\\"), DayActivity(time='5:00 PM', activity='Enjoy + a sunset at the Barracca Lift.', location='Upper Barracca Gardens', notes='Stunning + views of the Grand Harbour.'), DayActivity(time='7:30 PM', activity='Dinner + at The Harbour Club.', location='Valletta', notes='Fine dining with Mediterranean + cuisine.')], meals=['Lunch at Palazzo Consiglia', 'Dinner at The Harbour Club'], + accommodation='Palazzo Consiglia, Valletta'), DayPlan(day_number=2, date='2023-10-02', + title='Historical Wonders of Mdina', activities=[DayActivity(time='9:00 AM', + activity='Breakfast at the hotel.', location='Palazzo Consiglia', notes='Enjoy + a gourmet breakfast.'), DayActivity(time='10:30 AM', activity='Visit Mdina, + the Silent City.', location='Mdina', notes='Explore the narrow streets and + historic architecture.'), DayActivity(time='1:00 PM', activity='Lunch at Fontanella + Tea Garden.', location='Mdina', notes='Famous for its cakes and views.'), + DayActivity(time='3:00 PM', activity=\\\"Visit St. Paul's Cathedral and the + Mdina Dungeons.\\\", location='Mdina', notes='Immerse in the history of the + city.'), DayActivity(time='6:00 PM', activity='Return to Valletta.', location='Valletta', + notes='Free evening to relax.'), DayActivity(time='8:00 PM', activity='Dinner + at La Viletta.', location='Valletta', n\"}},{\"key\":\"gen_ai.prompt.19.tool_call_id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Paradise + Found: A Luxurious Escape to Barbados', destination='Barbados', duration_days=7, + total_budget_estimate='$5,000', daily_plans=[DayPlan(day_number=1, date='2023-11-01', + title='Arrival and Beach Relaxation', activities=[DayActivity(time='10:00 + AM', activity='Arrival at Grantley Adams International Airport', location='Bridgetown', + notes='Private transfer to hotel.'), DayActivity(time='12:00 PM', activity='Check-in + at Sandy Lane Hotel', location='Sandy Lane, St. James', notes='Enjoy a welcome + drink upon arrival.'), DayActivity(time='1:00 PM', activity='Lunch at The + Bajan Blue', location='Sandy Lane Hotel', notes='Try the fresh catch of the + day.'), DayActivity(time='3:00 PM', activity='Relax at the beach', location='Sandy + Lane Beach', notes='Enjoy complimentary beach services and cabanas.'), DayActivity(time='7:00 + PM', activity=\\\"Dinner at L'Acajou\\\", location='Sandy Lane Hotel', notes='Reserve + a table for an oceanfront dining experience.')], meals=['Lunch at The Bajan + Blue', \\\"Dinner at L'Acajou\\\"], accommodation='Sandy Lane Hotel'), DayPlan(day_number=2, + date='2023-11-02', title='Exploring the Nature and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at The Bajan Blue', location='Sandy Lane Hotel', + notes='Buffet breakfast included.'), DayActivity(time='9:30 AM', activity=\\\"Visit + Harrison's Cave\\\", location='Welches, St. Thomas', notes='Guided tram tour + of the limestone caves.'), DayActivity(time='12:00 PM', activity='Lunch at + The Cliff', location='The Cliff, St. James', notes='One of the best views + in Barbados.'), DayActivity(time='2:00 PM', activity='Explore the Andromeda + Botanic Gardens', location='Bathsheba', notes='Stroll through beautiful tropical + plants.'), DayActivity(time='5:00 PM', activity='Return to hotel and relax + by the pool', location='Sandy Lane Hotel', notes='Enjoy the sunset views.'), + DayActivity(time='8:00 PM', activity='Dinner at The Tides', location='Holetown', + notes='Fin\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a luxurious winter getaway itinerary for two amazing destinations: Malta and + Barbados. You can choose either for a memorable experience!\\n\\n### Malta: + A Luxurious Journey Through History and Culture\\n\\n#### Overview:\\n- **Duration:** + 7 Days\\n- **Budget:** \u20AC5000\\n- **Interests:** History, culture, relaxation\\n- + **Weather:** Partly cloudy, 14\xB0C to 25\xB0C\\n\\n#### Highlights:\\n- **Explore + Valletta:** Discover historic sites like St. John's Co-Cathedral and the Upper + Barracca Gardens.\\n- **Visit Mdina:** Wander through the narrow streets of + the Silent City.\\n- **Cruise the Blue Lagoon:** Relax and swim in crystal-clear + waters on Comino Island.\\n- **Art and Culture in Valletta:** Enjoy museums, + the Grand Master's Palace, and traditional Maltese cuisine.\\n- **Day in Gozo:** + Experience UNESCO sites and enjoy local cuisine in Xlendi Bay.\\n- **Relaxation + and Spa Day:** Indulge in luxury spa treatments and wine tasting.\\n\\n#### + Suggested Activities:\\n- Stroll through the National Museum of Archaeology.\\n- + Enjoy a Michelin-starred dining experience at Noni.\\n- Unwind at the historic + and luxurious Palazzo Consiglia.\\n\\n---\\n\\n### Barbados: Paradise Found\\n\\n#### + Overview:\\n- **Duration:** 7 Days\\n- **Budget:** $5,000\\n- **Interests:** + Beach, nature, relaxation\\n- **Weather:** Mainly clear with occasional rain, + 26\xB0C to 28\xB0C\\n\\n#### Highlights:\\n- **Stay at Sandy Lane:** Experience + luxury at a top-notch hotel.\\n- **Catamaran Cruise:** Snorkel and swim with + turtles.\\n- **Visit Harrison's Cave:** Explore stunning limestone formations.\\n- + **Beach Relaxation:** Enjoy water sports and sunbathing at Sandy Lane Beach.\\n- + **Cultural Sightseeing:** Visit the Barbados Museum and Andromeda Botanic + Gardens.\\n- **Island Adventure:** Discover the Animal Flower Cave and Bathsheba + Beach.\\n\\n#### Suggested Activities:\\n- Indulge in a private yoga session + on the beach.\\n- Savor local flavors at dining spots like The Cliff and Oistins + Fish Fry.\\n- Book a spa treatment for ultimate relaxation.\\n\\nChoose either + Malta for its rich history and culture or Barbados for its tropical para\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"6963\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"482\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7445\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"embCySXGZiM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057716128000\",\"endTimeUnixNano\":\"1763042059661983000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"60\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"525\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"mC8CCwLW76g=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663097000\",\"endTimeUnixNano\":\"1763042062451067000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ssDCKShkL44=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663477000\",\"endTimeUnixNano\":\"1763042062451172000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fuu6tO+Ndlo=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042062452499000\",\"endTimeUnixNano\":\"1763042064799092000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1003\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1055\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fvHJdvNTMws=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064799830000\",\"endTimeUnixNano\":\"1763042067739773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"T8dJZDmT4I4=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064800127000\",\"endTimeUnixNano\":\"1763042067739862000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"v6cWcKHOCjI=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042067741423000\",\"endTimeUnixNano\":\"1763042070448846000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1077\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"86\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1163\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"UEIsxC37pwE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449031000\",\"endTimeUnixNano\":\"1763042072801957000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"THKreibx8ug=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449103000\",\"endTimeUnixNano\":\"1763042072802080000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"YBTnmbTN6jE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042072803790000\",\"endTimeUnixNano\":\"1763042075107212000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1391\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1443\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"SxqLZKfWCmA=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108148000\",\"endTimeUnixNano\":\"1763042076670490000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"5dBBk3l1eiQ=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108516000\",\"endTimeUnixNano\":\"1763042076670556000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"cE+1FFJhlnU=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076671577000\",\"endTimeUnixNano\":\"1763042082126494000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1535\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"208\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1743\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"QAlZHx6RuLM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082127730000\",\"endTimeUnixNano\":\"1763042160416987000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"th2IYCV4hsE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082128207000\",\"endTimeUnixNano\":\"1763042160417136000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HDPGse/8x4o=\",\"parentSpanId\":\"mC8CCwLW76g=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042060166394000\",\"endTimeUnixNano\":\"1763042061283475000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"IA+JMvfXJl8=\",\"parentSpanId\":\"ssDCKShkL44=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042061306153000\",\"endTimeUnixNano\":\"1763042062439682000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"PzmXYx0yNzo=\",\"parentSpanId\":\"fvHJdvNTMws=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042065903652000\",\"endTimeUnixNano\":\"1763042066847763000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Malta\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ON9RLT3j6a4=\",\"parentSpanId\":\"T8dJZDmT4I4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042066849545000\",\"endTimeUnixNano\":\"1763042067737708000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"M2Q2FV2cXIU=\",\"parentSpanId\":\"UEIsxC37pwE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042070951475000\",\"endTimeUnixNano\":\"1763042071877256000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=35.8885993\\u0026longitude=14.4476911\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Ze33HN9DUpc=\",\"parentSpanId\":\"THKreibx8ug=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042071879722000\",\"endTimeUnixNano\":\"1763042072800019000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HKpm5tCLJzU=\",\"parentSpanId\":\"SxqLZKfWCmA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042075611055000\",\"endTimeUnixNano\":\"1763042076145487000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Malta\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"lAzYqhlHfpg=\",\"parentSpanId\":\"5dBBk3l1eiQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076148467000\",\"endTimeUnixNano\":\"1763042076669422000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Znd3vlNcirg=\",\"parentSpanId\":\"th2IYCV4hsE=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042123087205000\",\"endTimeUnixNano\":\"1763042160414874000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: beach, nature, relaxation\\n- Weather: Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\n- Destination Info: Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the luxury budget level and beach, nature, + relaxation interests.\\nEach day should have 3-5 activities with specific + times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS5EtpivASLkttPJzZ83ik15FlLX\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2260\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1719\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"541\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Paradise + Found: A Luxurious Escape to Barbados\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$5,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-01\\\",\\\"title\\\":\\\"Arrival + and Beach Relaxation\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrival + at Grantley Adams International Airport\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Private + transfer to hotel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at Sandy Lane Hotel\\\",\\\"location\\\":\\\"Sandy Lane, St. James\\\",\\\"notes\\\":\\\"Enjoy + a welcome drink upon arrival.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Try + the fresh catch of the day.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at the beach\\\",\\\"location\\\":\\\"Sandy Lane Beach\\\",\\\"notes\\\":\\\"Enjoy + complimentary beach services and cabanas.\\\"},{\\\"time\\\":\\\"7:00 PM\\\",\\\"activity\\\":\\\"Dinner + at L'Acajou\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Reserve + a table for an oceanfront dining experience.\\\"}],\\\"meals\\\":[\\\"Lunch + at The Bajan Blue\\\",\\\"Dinner at L'Acajou\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-02\\\",\\\"title\\\":\\\"Exploring + the Nature and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Buffet + breakfast included.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Harrison's Cave\\\",\\\"location\\\":\\\"Welches, St. Thomas\\\",\\\"notes\\\":\\\"Guided + tram tour of the limestone caves.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Cliff\\\",\\\"location\\\":\\\"The Cliff, St. James\\\",\\\"notes\\\":\\\"One + of the best views in Barbados.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + the Andromeda Botanic Gardens\\\",\\\"location\\\":\\\"Bathsheba\\\",\\\"notes\\\":\\\"Stroll + through beautiful tropical plants.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to hotel and relax by the pool\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Enjoy + the sunset views.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Tides\\\",\\\"location\\\":\\\"Holetown\\\",\\\"notes\\\":\\\"Fine + dining with a local twist.\\\"}],\\\"meals\\\":[\\\"Breakfast at The Bajan + Blue\\\",\\\"Lunch at The Cliff\\\",\\\"Dinner at The Tides\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"BVSE4lyy6Ng=\",\"parentSpanId\":\"QAlZHx6RuLM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042082648743000\",\"endTimeUnixNano\":\"1763042123074678000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Malta.\\n\\nTrip + Details:\\n- Destination: Malta\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: history, culture, relaxation\\n- Weather: Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\n- Destination Info: Malta is an island country + in Southern Europe, located in the Mediterranean Sea. The country's capital, + Valletta, is a historic city rich in culture and architecture. Official languages + are Maltese and English.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the luxury budget level and history, culture, relaxation interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS4aBtO0u5Rq9bvPgdgOeSH0n75R\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2342\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1792\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"550\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Malta: + A Luxurious Journey Through History and Culture\\\",\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC5000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Valletta\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia, Valletta\\\",\\\"notes\\\":\\\"Luxurious + boutique hotel with a historic feel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Try + local specialties.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + Valletta on foot.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Visit + St. John's Co-Cathedral and the Upper Barracca Gardens.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a sunset at the Barracca Lift.\\\",\\\"location\\\":\\\"Upper + Barracca Gardens\\\",\\\"notes\\\":\\\"Stunning views of the Grand Harbour.\\\"},{\\\"time\\\":\\\"7:30 + PM\\\",\\\"activity\\\":\\\"Dinner at The Harbour Club.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Fine + dining with Mediterranean cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Palazzo + Consiglia\\\",\\\"Dinner at The Harbour Club\\\"],\\\"accommodation\\\":\\\"Palazzo + Consiglia, Valletta\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Historical + Wonders of Mdina\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Enjoy + a gourmet breakfast.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Visit + Mdina, the Silent City.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Explore + the narrow streets and historic architecture.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Fontanella Tea Garden.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Famous + for its cakes and views.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + St. Paul's Cathedral and the Mdina Dungeons.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Immerse + in the history of the city.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Return + to Valletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Free + evening to relax.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at La Viletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Authentic + Maltese cuisine.\\\"}],\\\"meals\\\":[\\\"Breakfast at Palazzo Consiglia\\\",\\\"Lunch + at Fontanella Tea Garden\\\",\\\"Dinner at La Viletta\\\"],\\\"accommodation\\\":\\\"Palazzo\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '127530' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/693bde2879b745ff467c20bf9cd2ea7a + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"pApb0LsOSf0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984002122000\",\"endTimeUnixNano\":\"1763042055706374000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Ty846xocHPs=\",\"parentSpanId\":\"pApb0LsOSf0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984003244000\",\"endTimeUnixNano\":\"1763042055706244000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"r4Bxnys8Ajs=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042004652154000\",\"endTimeUnixNano\":\"1763042043092842000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"dvw9i3v4lK0=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042043095808000\",\"endTimeUnixNano\":\"1763042055704401000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2d2455c81978681b90b08ba66c7\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Nature + \\u0026 Adventure in New Zealand: A Week of Wonders', destination='New Zealand', + duration_days=7, total_budget_estimate='$1,500 - $2,000', daily_plans=[DayPlan(day_number=1, + date='2023-10-01', title='Arrival in Auckland', activities=[DayActivity(time='10:00 + AM', activity='Arrive at Auckland Airport', location='Auckland Airport', notes='Collect + rental car from the airport.'), DayActivity(time='12:00 PM', activity='Lunch + at Depot Eatery', location='Auckland', notes='Try local favorites like the + green-lipped mussels.'), DayActivity(time='2:00 PM', activity='Visit Auckland + War Memorial Museum', location='Domain Drive, Auckland', notes='Explore Maori + culture and New Zealand\u2019s natural history.'), DayActivity(time='4:00 + PM', activity='Stroll in Auckland Domain', location='Auckland', notes='Enjoy + the gardens and scenic views.'), DayActivity(time='6:00 PM', activity='Dinner + at The Glass Goose Bar \\u0026 Eatery', location='Auckland', notes='Outdoor + seating available.')], meals=['Lunch at Depot Eatery', 'Dinner at The Glass + Goose Bar \\u0026 Eatery'], accommodation='SkyCity Hotel, Auckland'), DayPlan(day_number=2, + date='2023-10-02', title='Exploring Rotorua', activities=[DayActivity(time='8:00 + AM', activity='Drive to Rotorua', location='Auckland to Rotorua (approx. 3 + hours)', notes='Enjoy scenic views along the way.'), DayActivity(time='11:00 + AM', activity='Visit Te Puia', location='Rotorua', notes='See geysers and + learn about Maori culture.'), DayActivity(time='1:00 PM', activity='Lunch + at Puku Puku Caf\xE9', location='Rotorua', notes='Sample local dishes.'), + DayActivity(time='3:00 PM', activity='Relax in the Polynesian Spa', location='Rotorua', + notes='Enjoy geothermal pools.'), DayActivity(time='6:00 PM', activity='Dinner + at Eat Streat', location='Rotorua', notes='Choose from various food stalls.')], + meals=['Lunch at Puku Puku Caf\xE9', 'Dinner at Eat Streat'], accommodation='Regent + of Rotorua'), DayPlan(day_number=3, date='2023-1\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"### + Nature \\u0026 Adventure in New Zealand: A Week of Wonders\\n\\n#### Destination: + New Zealand\\n- **Duration:** 7 Days\\n- **Budget:** Moderate ($1,500 - $2,000)\\n- + **Interests:** Nature, Adventure, Culture\\n\\n#### Weather Insights\\n- Current + conditions are overcast with a temperature of 7.6\xB0C.\\n- Expect mild temperatures + with some precipitation next week, ranging from 4\xB0C to 22\xB0C.\\n\\n#### + Trip Overview\\n\\n**Day 1: Arrival in Auckland**\\n- **10:00 AM:** Arrive + at Auckland Airport - Collect rental car.\\n- **12:00 PM:** Lunch at Depot + Eatery - Try local green-lipped mussels.\\n- **2:00 PM:** Visit Auckland War + Memorial Museum - Explore Maori culture.\\n- **4:00 PM:** Stroll in Auckland + Domain - Enjoy gardens and views.\\n- **6:00 PM:** Dinner at The Glass Goose + Bar \\u0026 Eatery.\\n- **Accommodation:** SkyCity Hotel, Auckland\\n\\n**Day + 2: Exploring Rotorua**\\n- **8:00 AM:** Drive to Rotorua (3 hours).\\n- **11:00 + AM:** Visit Te Puia - See geysers and Maori culture.\\n- **1:00 PM:** Lunch + at Puku Puku Caf\xE9 - Sample local dishes.\\n- **3:00 PM:** Relax in Polynesian + Spa - Enjoy geothermal pools.\\n- **6:00 PM:** Dinner at Eat Streat.\\n- **Accommodation:** + Regent of Rotorua\\n\\n**Day 3: Adventure in Taupo**\\n- **8:00 AM:** Drive + to Taupo (1 hour).\\n- **10:00 AM:** Visit Huka Falls.\\n- **12:00 PM:** Lunch + at The Boat Shed Caf\xE9.\\n- **2:00 PM:** Skydiving or Jet Boating - Book + in advance.\\n- **5:00 PM:** Relax at Taupo Lake Front.\\n- **Accommodation:** + Millennium Hotel Taupo\\n\\n**Day 4: Tongariro National Park**\\n- **7:00 + AM:** Drive to Tongariro (1 hour).\\n- **8:30 AM:** Begin Tongariro Alpine + Crossing - Full-day hike.\\n- **12:00 PM:** Lunch on the trail - Pack a picnic.\\n- + **4:00 PM:** Complete hike - Stunning views.\\n- **6:00 PM:** Dinner at a + local lodge.\\n- **Accommodation:** Chateau Tongariro Hotel\\n\\n**Day 5: + Wellington Culture Day**\\n- **8:00 AM:** Drive to Wellington (4 hours).\\n- + **12:00 PM:** Lunch at Fidel's Caf\xE9.\\n- **2:00 PM:** Visit Te Papa Tongarewa + Museum - Free entry.\\n- **4:00 PM:** Walk along Wellington Waterfront.\\n- + **6:00 PM:** Dinner at Ortega Fish Shack.\\n- **A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4339\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"846\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5185\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"IS6vpvXSyWc=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984005653000\",\"endTimeUnixNano\":\"1763041985613511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"936\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"959\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"brUFs0ciw1M=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041985613918000\",\"endTimeUnixNano\":\"1763041987102501000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Irx+5vAh2RA=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041987103912000\",\"endTimeUnixNano\":\"1763041990567857000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"801\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8D1wUHRUnJY=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568009000\",\"endTimeUnixNano\":\"1763041993540330000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Z0YMsVUAJiE=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568056000\",\"endTimeUnixNano\":\"1763041993540426000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"YOs61ryvpF4=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041993541968000\",\"endTimeUnixNano\":\"1763041995719255000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"876\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"84\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"960\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"4JCF5eBk2tQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719607000\",\"endTimeUnixNano\":\"1763041998146609000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ixR9+7Z/j1o=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719759000\",\"endTimeUnixNano\":\"1763041998146773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8mbS0moocyI=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041998148255000\",\"endTimeUnixNano\":\"1763041999477499000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2374\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"18\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2392\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ZXf5rcFUcLQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041999478441000\",\"endTimeUnixNano\":\"1763042000768653000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"1qbdTW8b/2E=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042000769229000\",\"endTimeUnixNano\":\"1763042004651429000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2545\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2687\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"NKOz3ltzNm0=\",\"parentSpanId\":\"r4Bxnys8Ajs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042005169975000\",\"endTimeUnixNano\":\"1763042043090298000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: nature, adventure, culture\\n- Weather: Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\n- Destination Info: New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It's known for varied topography and sharp mountain peaks, + including the Southern Alps. The capital city is Wellington, and its most + populous city is Auckland.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and nature, adventure, culture interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS3K2CF576d4YsisW6wGQEds7rmH\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2169\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1573\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"596\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Nature + \\u0026 Adventure in New Zealand: A Week of Wonders\\\",\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500 + - $2,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + rental car from the airport.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Depot Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Try + local favorites like the green-lipped mussels.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Domain + Drive, Auckland\\\",\\\"notes\\\":\\\"Explore Maori culture and New Zealand\u2019s + natural history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Stroll + in Auckland Domain\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Enjoy + the gardens and scenic views.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Outdoor + seating available.\\\"}],\\\"meals\\\":[\\\"Lunch at Depot Eatery\\\",\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + Rotorua\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Rotorua\\\",\\\"location\\\":\\\"Auckland to Rotorua (approx. 3 hours)\\\",\\\"notes\\\":\\\"Enjoy + scenic views along the way.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit + Te Puia\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"See geysers + and learn about Maori culture.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Puku Puku Caf\xE9\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Sample + local dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + in the Polynesian Spa\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Enjoy + geothermal pools.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Eat Streat\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Choose + from various food stalls.\\\"}],\\\"meals\\\":[\\\"Lunch at Puku Puku Caf\xE9\\\",\\\"Dinner + at Eat Streat\\\"],\\\"accommodation\\\":\\\"Regent of Rotorua\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Adventure + in Taupo\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Taupo\\\",\\\"location\\\":\\\"Rotorua to Taupo (approx. 1 hour)\\\",\\\"notes\\\":\\\"Stop + at Huk\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"056VGM+8Nok=\",\"parentSpanId\":\"brUFs0ciw1M=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041986115747000\",\"endTimeUnixNano\":\"1763041987094583000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"kvjaqj4KYrQ=\",\"parentSpanId\":\"8D1wUHRUnJY=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041991671179000\",\"endTimeUnixNano\":\"1763041992478589000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"u+rad2kmPnI=\",\"parentSpanId\":\"Z0YMsVUAJiE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041992480116000\",\"endTimeUnixNano\":\"1763041993538494000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ETHKBPTcA2s=\",\"parentSpanId\":\"4JCF5eBk2tQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041996225152000\",\"endTimeUnixNano\":\"1763041997195369000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"jQ6zmabmw2M=\",\"parentSpanId\":\"ixR9+7Z/j1o=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041997198300000\",\"endTimeUnixNano\":\"1763041998144145000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"0YqSiXc6Hig=\",\"parentSpanId\":\"ZXf5rcFUcLQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041999981250000\",\"endTimeUnixNano\":\"1763042000767913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '98254' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/eed63641fc3ffa3ea40a166e2604edd2 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"kDfoXagrNmk=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306563000\",\"endTimeUnixNano\":\"1763041981994302000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"5t6oCNV1x24=\",\"parentSpanId\":\"kDfoXagrNmk=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306752000\",\"endTimeUnixNano\":\"1763041981994217000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"CPDw9H+t3W0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041900556562000\",\"endTimeUnixNano\":\"1763041909681624000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are some great beach destinations for families in the Americas to consider:\\n\\n1. + **Barbados (Caribbean)**\\n - Language: English\\n - Currency: BBD\\n + \ - Known for its beautiful sandy beaches and vibrant culture.\\n\\n2. **Puerto + Rico (Caribbean)**\\n - Languages: English, Spanish\\n - Currency: USD\\n + \ - Offers lovely beaches, lush rainforests, and a rich cultural heritage.\\n\\n3. + **Turks and Caicos Islands (Caribbean)**\\n - Language: English\\n - Currency: + USD\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\n\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\n\\nI'll gather weather + information and details about Barbados and then create your itinerary.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"664\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"221\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"885\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"gjU8x51ljN8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909682975000\",\"endTimeUnixNano\":\"1763041912228857000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"saPJCTZOa8E=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909683354000\",\"endTimeUnixNano\":\"1763041912228748000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"v4pJsgk8eu8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041912233276000\",\"endTimeUnixNano\":\"1763041916478547000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1859\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"37\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1896\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vW7dC7113KM=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041916479365000\",\"endTimeUnixNano\":\"1763041923081358000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"S5LEq3ro4i0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041923083562000\",\"endTimeUnixNano\":\"1763041926952714000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2178\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"127\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2305\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"0revCekYick=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041926953355000\",\"endTimeUnixNano\":\"1763041968277636000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"awXbMZjA1IQ=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041968278645000\",\"endTimeUnixNano\":\"1763041981992200000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e284b4408193b787ece129274ff2\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Beach + Bliss in Barbados: A 7-Day Tropical Escape', destination='Barbados', duration_days=7, + total_budget_estimate='$1,500', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and Beach Day', activities=[DayActivity(time='12:00 PM', activity='Check-in + at hotel', location='Turtle Beach by Elegant Hotels', notes='Enjoy welcome + drinks and settle into your room.'), DayActivity(time='1:30 PM', activity='Lunch + at the hotel restaurant', location='Turtle Beach', notes='Try the grilled + fish with local spices.'), DayActivity(time='3:00 PM', activity='Relax at + Dover Beach', location='Dover Beach', notes='Beach chairs and umbrellas available + for rent.'), DayActivity(time='6:00 PM', activity='Sunset viewing', location='Dover + Beach', notes='Perfect spot for photos.'), DayActivity(time='7:30 PM', activity='Dinner + at The Oistins Fish Fry', location='Oistins', notes='A vibrant atmosphere + with fresh seafood.')], meals=['Lunch at Turtle Beach', 'Dinner at Oistins + Fish Fry'], accommodation='Turtle Beach by Elegant Hotels'), DayPlan(day_number=2, + date='2023-10-02', title='Explore Bridgetown', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at the hotel', location='Turtle Beach', notes='Buffet + style with local and international options.'), DayActivity(time='9:30 AM', + activity='Visit the Barbados Museum \\u0026 Historical Society', location='Bridgetown', + notes=\\\"Learn about the island's history.\\\"), DayActivity(time='12:00 + PM', activity='Lunch at Brown Sugar', location='Bridgetown', notes='Taste + local dishes in an outdoor setting.'), DayActivity(time='2:00 PM', activity='Explore + George Street and local shops', location='Bridgetown', notes='Pick up souvenirs + and local crafts.'), DayActivity(time='4:00 PM', activity='Relax at Pebbles + Beach', location='Pebbles Beach', notes='Enjoy swimming and sunbathing.'), + DayActivity(time='6:00 PM', activity='Dinner at The Cliff', location='St. + James', notes='Reservations recommend\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for your family vacation in Barbados, focusing + on beach activities and cultural experiences:\\n\\n### Trip Title: Beach Bliss + in Barbados: A 7-Day Tropical Escape\\n\\n#### **Day 1: Arrival and Beach + Day**\\n- **12:00 PM:** Check-in at Turtle Beach by Elegant Hotels. Enjoy + welcome drinks and settle in.\\n- **1:30 PM:** Lunch at the hotel restaurant. + Try the grilled fish with local spices.\\n- **3:00 PM:** Relax at Dover Beach. + Beach chairs and umbrellas available.\\n- **6:00 PM:** Enjoy a sunset viewing + at Dover Beach\u2014perfect for photos.\\n- **7:30 PM:** Dinner at The Oistins + Fish Fry. Vibrant atmosphere with fresh seafood.\\n\\n#### **Day 2: Explore + Bridgetown**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** + Visit the Barbados Museum \\u0026 Historical Society. Learn about the island's + history.\\n- **12:00 PM:** Lunch at Brown Sugar. Taste local dishes.\\n- **2:00 + PM:** Explore George Street and local shops for souvenirs.\\n- **4:00 PM:** + Relax at Pebbles Beach. Enjoy swimming and sunbathing.\\n- **6:00 PM:** Dinner + at The Cliff. Stunning ocean views, reservations recommended.\\n\\n#### **Day + 3: Catamaran Adventure**\\n- **7:30 AM:** Breakfast at Turtle Beach.\\n- **9:00 + AM:** Catamaran cruise from Bridgetown. Swim with turtles and snorkel at coral + reefs.\\n- **12:30 PM:** Lunch on board the catamaran.\\n- **3:00 PM:** Return + to the hotel, relax at the beach or pool.\\n- **7:00 PM:** Dinner at The Round + House in Bathsheba. Try local fish dishes.\\n\\n#### **Day 4: Beach Hopping**\\n- + **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** Visit Crane Beach. + Famous for its pink sand.\\n- **12:00 PM:** Lunch at The Crane Beach Resort.\\n- + **2:00 PM:** Head to Bottom Bay Beach. Less crowded and perfect for relaxation.\\n- + **5:00 PM:** Return to hotel.\\n- **7:30 PM:** Dinner at Naru Restaurant and + Lounge. Local and Asian fusion cuisine.\\n\\n#### **Day 5: Island Culture + and Relaxation**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **10:00 AM:** + Visit St. Nicholas Abbey. Tour the plantation and rum distillery.\\n- **1:00 + PM:** Lunch at the A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4121\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"842\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4963\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vSd7s42xrTw=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894311147000\",\"endTimeUnixNano\":\"1763041898739189000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"932\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"22\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"954\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"dkkP9YWRUaI=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041898739699000\",\"endTimeUnixNano\":\"1763041900553722000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"jB510DMs6/8=\",\"parentSpanId\":\"saPJCTZOa8E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910186602000\",\"endTimeUnixNano\":\"1763041910919083000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"I4smyApmv2I=\",\"parentSpanId\":\"gjU8x51ljN8=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910919911000\",\"endTimeUnixNano\":\"1763041912227844000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wsif3cTB5R0=\",\"parentSpanId\":\"vW7dC7113KM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041916984585000\",\"endTimeUnixNano\":\"1763041923078888000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"T263X02AHSc=\",\"parentSpanId\":\"dkkP9YWRUaI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041899242488000\",\"endTimeUnixNano\":\"1763041900545636000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wJnvML6OlKo=\",\"parentSpanId\":\"0revCekYick=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041927471141000\",\"endTimeUnixNano\":\"1763041968276800000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: beaches\\n- Weather: Current temperature 27.4\xB0C, mainly clear + conditions. Forecast: mostly warm weather with some rain expected later in + the week.\\n- Destination Info: Barbados is an island country in the Caribbean + located in the Atlantic Ocean. It is part of the Lesser Antilles of the West + Indies and the easternmost island of the Caribbean region. It lies on the + boundary of the South American and Caribbean plates. Its capital and largest + city is Bridgetown.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and beaches interests.\\nEach day should have 3-5 + activities with specific times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS25L4VnHyasIegXuwEirm30SBWf\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2288\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1717\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"571\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Beach + Bliss in Barbados: A 7-Day Tropical Escape\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Beach Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at hotel\\\",\\\"location\\\":\\\"Turtle Beach by Elegant Hotels\\\",\\\"notes\\\":\\\"Enjoy + welcome drinks and settle into your room.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Try + the grilled fish with local spices.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at Dover Beach\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Beach + chairs and umbrellas available for rent.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Sunset + viewing\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Perfect + spot for photos.\\\"},{\\\"time\\\":\\\"7:30 PM\\\",\\\"activity\\\":\\\"Dinner + at The Oistins Fish Fry\\\",\\\"location\\\":\\\"Oistins\\\",\\\"notes\\\":\\\"A + vibrant atmosphere with fresh seafood.\\\"}],\\\"meals\\\":[\\\"Lunch at Turtle + Beach\\\",\\\"Dinner at Oistins Fish Fry\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Explore + Bridgetown\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Buffet + style with local and international options.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + the Barbados Museum \\u0026 Historical Society\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Learn + about the island's history.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Brown Sugar\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Taste + local dishes in an outdoor setting.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + George Street and local shops\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Pick + up souvenirs and local crafts.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Relax + at Pebbles Beach\\\",\\\"location\\\":\\\"Pebbles Beach\\\",\\\"notes\\\":\\\"Enjoy + swimming and sunbathing.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Cliff\\\",\\\"location\\\":\\\"St. James\\\",\\\"notes\\\":\\\"Reservations + recommended for stunning ocean views.\\\"}],\\\"meals\\\":[\\\"Breakfast at + Turtle Beach\\\",\\\"Lunch at Brown Sugar\\\",\\\"Dinner at The Cliff\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '79035' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoServiceOperations.test_get_service_operations.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoServiceOperations.test_get_service_operations.yaml new file mode 100644 index 0000000..3cd9aa5 --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoServiceOperations.test_get_service_operations.yaml @@ -0,0 +1,69 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B%7D&limit=1000 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}},{"traceID":"b37b4c7727a54482f8c71cb88799c108","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042214208334000","durationMs":74124,"spanSet":{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18},"spanSets":[{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18}],"serviceStats":{"travel-agent-demo2":{"spanCount":18}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"43192","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Vary: + - Accept-Encoding + content-length: + - '6560' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B+resource.service.name+%3D+%22travel-agent-demo%22+%7D&limit=100 + response: + body: + string: '{"traces":[],"metrics":{"inspectedBytes":"38573","completedJobs":1,"totalJobs":1}}' + headers: + Content-Length: + - '82' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:44 GMT + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoTraceQL.test_search_with_contains_filter.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoTraceQL.test_search_with_contains_filter.yaml new file mode 100644 index 0000000..b8133b4 --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoTraceQL.test_search_with_contains_filter.yaml @@ -0,0 +1,5285 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B%7D&limit=1000 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}},{"traceID":"b37b4c7727a54482f8c71cb88799c108","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042214208334000","durationMs":74124,"spanSet":{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18},"spanSets":[{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18}],"serviceStats":{"travel-agent-demo2":{"spanCount":18}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"43192","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Vary: + - Accept-Encoding + content-length: + - '6560' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B+resource.service.name+%3D~+%22.%2Atra.%2A%22+%7D&limit=10 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]}],"matched":23},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]}],"matched":23}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]}],"matched":28},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]}],"matched":28}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}},{"traceID":"b37b4c7727a54482f8c71cb88799c108","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042214208334000","durationMs":74124,"spanSet":{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]}],"matched":18},"spanSets":[{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]}],"matched":18}],"serviceStats":{"travel-agent-demo2":{"spanCount":18}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"68374","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Vary: + - Accept-Encoding + content-length: + - '10022' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/bec9c8df1c3a22a134e4c9c7aa0f0ce3 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"htO31/xjQN0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458122243000\",\"endTimeUnixNano\":\"1763042536895402000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"0hFkYEm0pAA=\",\"parentSpanId\":\"htO31/xjQN0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458123662000\",\"endTimeUnixNano\":\"1763042536895316000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"FSS1aMtuo4g=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042521888311000\",\"endTimeUnixNano\":\"1763042536893685000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4ab7f848195ada04713bd68e3dc\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Exploring + the Wonders of New Zealand', destination='New Zealand', duration_days=7, total_budget_estimate='$1,500', + daily_plans=[DayPlan(day_number=1, date='2023-10-01', title='Arrival in Auckland', + activities=[DayActivity(time='09:00 AM', activity='Arrive at Auckland Airport', + location='Auckland Airport', notes='Collect your rental car for the week.'), + DayActivity(time='10:00 AM', activity='Check into Accommodation', location='SkyCity + Hotel', notes='Located in the city center, convenient for exploring.'), DayActivity(time='11:30 + AM', activity='Visit Auckland War Memorial Museum', location='Auckland Domain', + notes='Explore New Zealand\u2019s cultural heritage and natural history.'), + DayActivity(time='02:00 PM', activity='Lunch at Tom Tom Bar \\u0026 Eatery', + location='SkyCity', notes='Enjoy a relaxing meal with views of the city.'), + DayActivity(time='03:30 PM', activity='Walk around Viaduct Harbour', location='Viaduct + Harbour', notes='Stroll along the waterfront and enjoy the vibrant atmosphere.'), + DayActivity(time='06:30 PM', activity='Dinner at Depot Eatery', location='Federal + Street, Auckland', notes='Experience local New Zealand cuisine.')], meals=['Lunch + at Tom Tom Bar \\u0026 Eatery', 'Dinner at Depot Eatery'], accommodation='SkyCity + Hotel, Auckland'), DayPlan(day_number=2, date='2023-10-02', title='Exploring + the Bay of Islands', activities=[DayActivity(time='07:00 AM', activity='Drive + to Bay of Islands', location='Bay of Islands', notes='Approx. 3 hours drive, + enjoy scenic views on the way.'), DayActivity(time='10:30 AM', activity='Take + a Bay of Islands Cruise', location='Paihia Wharf', notes='Explore the stunning + islands and spot marine wildlife.'), DayActivity(time='01:00 PM', activity='Lunch + at The Gables Restaurant', location='Russell', notes='Try fresh seafood and + local dishes.'), DayActivity(time='03:00 PM', activity='Visit Waitangi Treaty + Grounds', location='Waitangi', notes=\\\"Learn about New Zealand's history + an\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for a romantic cultural vacation in New Zealand, + tailored to your interests:\\n\\n### Exploring the Wonders of New Zealand\\n\\n#### + **Day 1: Arrival in Auckland**\\n- **Morning**\\n - Arrive at Auckland Airport\\n + \ - Check into SkyCity Hotel, centrally located for easy exploration.\\n- + **Afternoon**\\n - Visit Auckland War Memorial Museum: Delve into New Zealand\u2019s + cultural heritage.\\n - Lunch at Tom Tom Bar \\u0026 Eatery: Enjoy city views.\\n- + **Evening**\\n - Walk around Viaduct Harbour: Vibrant waterfront stroll.\\n + \ - Dinner at Depot Eatery: Experience local cuisine.\\n\\n#### **Day 2: Exploring + the Bay of Islands**\\n- **Morning**\\n - Drive to Bay of Islands: Scenic + 3-hour journey.\\n - Take a Bay of Islands Cruise: Explore islands and marine + wildlife.\\n- **Afternoon**\\n - Lunch at The Gables Restaurant: Fresh local + seafood.\\n - Visit Waitangi Treaty Grounds: Learn about New Zealand's history.\\n- + **Evening**\\n - Return to Auckland.\\n - Dinner at The Glasshouse.\\n\\n#### + **Day 3: Wellington - The Capital**\\n- **Morning**\\n - Drive to Wellington: + Enjoy the scenic route.\\n- **Afternoon**\\n - Lunch at The Boatshed Cafe.\\n + \ - Visit Te Papa Tongarewa (Museum of New Zealand): Explore national history.\\n- + **Evening**\\n - Cable Car Ride to Kelburn: City views.\\n - Dinner at Logan + Brown: Fine dining.\\n\\n#### **Day 4: Nature and Culture in Wellington**\\n- + **Morning**\\n - Wellington Botanic Garden: Peaceful morning walk.\\n - + Explore Zealandia Ecosanctuary: Discover unique wildlife.\\n- **Afternoon**\\n + \ - Lunch at The Ramen Shop.\\n - Visit the National Portrait Gallery.\\n- + **Evening**\\n - Dinner at The Old Bailey.\\n\\n#### **Day 5: Travel to Queenstown**\\n- + **Early Morning**\\n - Fly from Wellington to Queenstown.\\n- **Morning**\\n + \ - Check into Center City Apartments.\\n - Skyline Gondola Ride: Panoramic + views.\\n- **Afternoon**\\n - Lunch at Stratosfare Restaurant: Mountain views.\\n + \ - Explore Queenstown Gardens.\\n- **Evening**\\n - Jet Boating on Lake + Wakatipu.\\n - Dinner at Fergburger.\\n\\n#### **Day 6: Adventure in Queenstown**\\n- + **Morning**\\n - \"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4669\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"694\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5363\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]}]},{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"SZQWdqnT86M=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458125576000\",\"endTimeUnixNano\":\"1763042460061974000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"933\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"956\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"LhJKSMoSSOA=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042460062781000\",\"endTimeUnixNano\":\"1763042461638134000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"j4A8EPQuGCg=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042461639066000\",\"endTimeUnixNano\":\"1763042463839211000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"800\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"850\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ULgV+UrP/qI=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463839867000\",\"endTimeUnixNano\":\"1763042466936364000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"rU40hFuwoTM=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463840073000\",\"endTimeUnixNano\":\"1763042466936520000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"t17Kam4h9+E=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466938646000\",\"endTimeUnixNano\":\"1763042470405151000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.completion.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.3.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"437\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"116\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"553\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"7g4u8KYJLAU=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406246000\",\"endTimeUnixNano\":\"1763042474022207000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"yCwOkiG7rZ4=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406582000\",\"endTimeUnixNano\":\"1763042474022257000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"suvbAlwFQxE=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406864000\",\"endTimeUnixNano\":\"1763042474022284000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"kK2HJo7iF1s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470407130000\",\"endTimeUnixNano\":\"1763042474022309000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"hqoFE9rpZHw=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042474023255000\",\"endTimeUnixNano\":\"1763042479037529000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2709\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"3q+1aP5st6s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042479037941000\",\"endTimeUnixNano\":\"1763042521886451000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xp8+s75qaoQ=\",\"parentSpanId\":\"LhJKSMoSSOA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042460566475000\",\"endTimeUnixNano\":\"1763042461631027000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xTNGMbJ8o4w=\",\"parentSpanId\":\"ULgV+UrP/qI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042464944178000\",\"endTimeUnixNano\":\"1763042466058265000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"cp8E6e04/1g=\",\"parentSpanId\":\"rU40hFuwoTM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466061655000\",\"endTimeUnixNano\":\"1763042466934165000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"vHsnrxC0dGw=\",\"parentSpanId\":\"7g4u8KYJLAU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042470916507000\",\"endTimeUnixNano\":\"1763042471857859000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"wieBZmgqMfE=\",\"parentSpanId\":\"yCwOkiG7rZ4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042471863066000\",\"endTimeUnixNano\":\"1763042472795187000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"KvPdWQGWzrM=\",\"parentSpanId\":\"suvbAlwFQxE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042472796856000\",\"endTimeUnixNano\":\"1763042473492982000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"YDcPBs0N6BQ=\",\"parentSpanId\":\"kK2HJo7iF1s=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042473499558000\",\"endTimeUnixNano\":\"1763042474021224000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Australia\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ZxRbtS6dkJI=\",\"parentSpanId\":\"3q+1aP5st6s=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042479555737000\",\"endTimeUnixNano\":\"1763042521884511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: culture, nature\\n- Weather: Current temperature is 7.5\xB0C and + overcast. Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected + on certain days.\\n- Destination Info: New Zealand is an island country in + the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the moderate budget level and culture, + nature interests.\\nEach day should have 3-5 activities with specific times, + locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbSAyeprdNroIr4yr884B5SquCIU0\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2320\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1726\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"594\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Exploring + the Wonders of New Zealand\\\",\\\"destination\\\":\\\"New Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + your rental car for the week.\\\"},{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into Accommodation\\\",\\\"location\\\":\\\"SkyCity Hotel\\\",\\\"notes\\\":\\\"Located + in the city center, convenient for exploring.\\\"},{\\\"time\\\":\\\"11:30 + AM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Auckland + Domain\\\",\\\"notes\\\":\\\"Explore New Zealand\u2019s cultural heritage + and natural history.\\\"},{\\\"time\\\":\\\"02:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"SkyCity\\\",\\\"notes\\\":\\\"Enjoy + a relaxing meal with views of the city.\\\"},{\\\"time\\\":\\\"03:30 PM\\\",\\\"activity\\\":\\\"Walk + around Viaduct Harbour\\\",\\\"location\\\":\\\"Viaduct Harbour\\\",\\\"notes\\\":\\\"Stroll + along the waterfront and enjoy the vibrant atmosphere.\\\"},{\\\"time\\\":\\\"06:30 + PM\\\",\\\"activity\\\":\\\"Dinner at Depot Eatery\\\",\\\"location\\\":\\\"Federal + Street, Auckland\\\",\\\"notes\\\":\\\"Experience local New Zealand cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"Dinner at Depot Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + the Bay of Islands\\\",\\\"activities\\\":[{\\\"time\\\":\\\"07:00 AM\\\",\\\"activity\\\":\\\"Drive + to Bay of Islands\\\",\\\"location\\\":\\\"Bay of Islands\\\",\\\"notes\\\":\\\"Approx. + 3 hours drive, enjoy scenic views on the way.\\\"},{\\\"time\\\":\\\"10:30 + AM\\\",\\\"activity\\\":\\\"Take a Bay of Islands Cruise\\\",\\\"location\\\":\\\"Paihia + Wharf\\\",\\\"notes\\\":\\\"Explore the stunning islands and spot marine wildlife.\\\"},{\\\"time\\\":\\\"01:00 + PM\\\",\\\"activity\\\":\\\"Lunch at The Gables Restaurant\\\",\\\"location\\\":\\\"Russell\\\",\\\"notes\\\":\\\"Try + fresh seafood and local dishes.\\\"},{\\\"time\\\":\\\"03:00 PM\\\",\\\"activity\\\":\\\"Visit + Waitangi Treaty Grounds\\\",\\\"location\\\":\\\"Waitangi\\\",\\\"notes\\\":\\\"Learn + about New Zealand's history and culture.\\\"},{\\\"time\\\":\\\"05:30 PM\\\",\\\"activity\\\":\\\"Return + to Auckland\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Relax + in the car or stop for coffee on the way.\\\"},{\\\"time\\\":\\\"07:3\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '89149' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/6ce0a0129015a826c7f54b78275cfe37 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"QM3dFI3l52g=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290335056000\",\"endTimeUnixNano\":\"1763042456116415000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"3iOop76o3Sw=\",\"parentSpanId\":\"QM3dFI3l52g=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290336958000\",\"endTimeUnixNano\":\"1763042456116320000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"BGNWa2Lx+H4=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290337931000\",\"endTimeUnixNano\":\"1763042291996182000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"58\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"523\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bpkI8o2juJI=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042291997852000\",\"endTimeUnixNano\":\"1763042294883864000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"FWUQD7dWK24=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042291998533000\",\"endTimeUnixNano\":\"1763042294884045000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"JxMUY8xtBSU=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042294885529000\",\"endTimeUnixNano\":\"1763042317534957000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"For + an adventurous trip, I've selected two destinations known for thrilling experiences: + **Chile** in South America and **Tajikistan** in Central Asia. Let's explore + these destinations further to plan your exciting itinerary.\\n\\n### Chile\\n- + **Capital**: Santiago\\n- **Language**: Spanish\\n- **Currency**: Chilean + Peso (CLP)\\n- **Time Zone**: UTC-06:00 to UTC-04:00\\n\\n### Tajikistan\\n- + **Capital**: Dushanbe\\n- **Language**: Tajik, Russian\\n- **Currency**: Tajikistani + Somoni (TJS)\\n- **Time Zone**: UTC+05:00\\n\\nI'll gather the weather information + and then craft a detailed itinerary for you.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"945\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"213\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1158\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"OnwfJc+G7eA=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042317535695000\",\"endTimeUnixNano\":\"1763042321467468000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"zVBafqJLSVU=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042317535898000\",\"endTimeUnixNano\":\"1763042321467528000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"t+rxwgGXbbg=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042321470042000\",\"endTimeUnixNano\":\"1763042324279616000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1194\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"92\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1286\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"cOiJesC5V+c=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042324280282000\",\"endTimeUnixNano\":\"1763042326821781000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"VHh495GUkl0=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042324280617000\",\"endTimeUnixNano\":\"1763042326822084000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"QcXOYcnb1as=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042326824312000\",\"endTimeUnixNano\":\"1763042328899504000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1518\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"58\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1576\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"q9X9jhj0kbo=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042328900052000\",\"endTimeUnixNano\":\"1763042332069522000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bKmi3eZoF9E=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042328900188000\",\"endTimeUnixNano\":\"1763042332069569000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"pQWL2XkRjNE=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042332070368000\",\"endTimeUnixNano\":\"1763042337546943000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418af3c8190b5314c9f212bff34\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418cdf8819087ab8a397842e1ba\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Santiago, Chile' info=DestinationInfo(title='Santiago', + summary='Capital and largest city of Chile', extract=\\\"Santiago, also known + as Santiago de Chile, is the capital and largest city of Chile and one of + the largest cities in the Americas. Located in the Chilean Central Valley, + it anchors its namesake Santiago Metropolitan Region representing 40% of Chile's + total population. Most of the city is situated between 500\u2013650\\\\xa0m + (1,640\u20132,133\\\\xa0ft) above sea level.\\\")\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.17.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Dushanbe, Tajikistan' info=DestinationInfo(title='Dushanbe', + summary='Capital and largest city of Tajikistan', extract='Dushanbe is the + capital and largest city of Tajikistan. As of February\\\\xa02023, Dushanbe + had a population of 1,228,400, with this population being largely Tajik. Until + 1929, the city was known in Russian as Dyushambe, and from 1929 to 1961 as + Stalinabad, after Joseph Stalin. Dushanbe is located in the Gissar Valley, + bounded by the Gissar Range in the north and east and the Babatag, Aktau, + Rangontau and Karatau mountains in the south, and has an elevation of 750\u2013930 + m. The city is divided into four districts: Ismail Samani, Avicenna, Ferdowsi, + and Shah Mansur.')\"}},{\"key\":\"gen_ai.prompt.17.tool_call_id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Santiago, + Chile\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 24\xB0C with partly cloudy conditions. Upcoming days will be + mostly clear with temperatures ranging from 26\xB0C to 34\xB0C.\\\",\\\"destination_details\\\":\\\"Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_VD4AdDcXmJyed5FWcjWG7Ikt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\\",\\\"destination_details\\\":\\\"Dushanbe + is the capital and largest city of Tajikistan. It is located in the Gissar + Valley, bounded by mountainous terrains, and has a population of over 1 million + people.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_lid7TRD6rOxaEhIq6ISjqGG2\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1702\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"288\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1990\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"/iqJRoiO3Hs=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042337548317000\",\"endTimeUnixNano\":\"1763042433336198000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"dQSecaXxjXM=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042337548704000\",\"endTimeUnixNano\":\"1763042433336329000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"Gic8k6ZyUjM=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042433338440000\",\"endTimeUnixNano\":\"1763042456109947000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418af3c8190b5314c9f212bff34\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418cdf8819087ab8a397842e1ba\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Santiago, Chile' info=DestinationInfo(title='Santiago', + summary='Capital and largest city of Chile', extract=\\\"Santiago, also known + as Santiago de Chile, is the capital and largest city of Chile and one of + the largest cities in the Americas. Located in the Chilean Central Valley, + it anchors its namesake Santiago Metropolitan Region representing 40% of Chile's + total population. Most of the city is situated between 500\u2013650\\\\xa0m + (1,640\u20132,133\\\\xa0ft) above sea level.\\\")\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.17.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Dushanbe, Tajikistan' info=DestinationInfo(title='Dushanbe', + summary='Capital and largest city of Tajikistan', extract='Dushanbe is the + capital and largest city of Tajikistan. As of February\\\\xa02023, Dushanbe + had a population of 1,228,400, with this population being largely Tajik. Until + 1929, the city was known in Russian as Dyushambe, and from 1929 to 1961 as + Stalinabad, after Joseph Stalin. Dushanbe is located in the Gissar Valley, + bounded by the Gissar Range in the north and east and the Babatag, Aktau, + Rangontau and Karatau mountains in the south, and has an elevation of 750\u2013930 + m. The city is divided into four districts: Ismail Samani, Avicenna, Ferdowsi, + and Shah Mansur.')\"}},{\"key\":\"gen_ai.prompt.17.tool_call_id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e41d98b08190a0e7d230b49ad8ac\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Santiago, + Chile\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 24\xB0C with partly cloudy conditions. Upcoming days will be + mostly clear with temperatures ranging from 26\xB0C to 34\xB0C.\\\",\\\"destination_details\\\":\\\"Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e41fb6448190bca146180572c7a7\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\\",\\\"destination_details\\\":\\\"Dushanbe + is the capital and largest city of Tajikistan. It is located in the Gissar + Valley, bounded by mountainous terrains, and has a population of over 1 million + people.\\\"}\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Santiago, Chile' itinerary=TravelItinerary(trip_title='Adventurous + Santiago: A 7-Day Exploration', destination='Santiago, Chile', duration_days=7, + total_budget_estimate='$800-$1000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Santiago', activities=[DayActivity(time='10:00 AM', activity='Arrive + at Santiago International Airport', location='Santiago International Airport', + notes='Pick up rental car or take a taxi to the accommodation.'), DayActivity(time='11:30 + AM', activity='Check-in to accommodation', location='Hotel Plaza El Bosque', + notes='Moderate budget, centrally located.'), DayActivity(time='1:00 PM', + activity='Lunch at Liguria', location='Liguria Restaurant', notes='Try the + local seafood dishes.'), DayActivity(time='3:00 PM', activity='Walk around + Plaza de Armas', location='Plaza de Armas', notes='Explore the historic heart + of Santiago.'), DayActivity(time='5:00 PM', activity='Visit Cerro Santa Lucia', + location='Cerro Santa Lucia', notes='Enjoy panoramic views of the city.')], + meals=['Lunch at Liguria', 'Dinner at La Piojera'], accommodation='Hotel Plaza + El Bosque'), DayPlan(day_number=2, date='2023-10-02', title='Cajon del Maipo + Adventure', activities=[DayActivity(time='8:00 AM', activity='Breakfast at + the hotel', location='Hotel Plaza El Bosque', notes='Enjoy a hearty breakfast.'), + DayActivity(time='9:00 AM', activity='Depart for Cajon del Maipo', location='Cajon + del Maipo', notes='A beautiful area for outdoor activities.'), DayActivity(time='10:30 + AM', activity='Hiking in the El Morado National Monument', location='El Morado', + notes='Moderate hike with stunning views.'), DayActivity(time='1:00 PM', activity='Picnic + lunch in nature', location='El Morado', notes='Pack a lunch to enjoy in the + outdoors.'), DayActivity(time='3:00 PM', activity='Visit Embalse El Yeso', + location='Embalse El Yeso', notes='Take photos and enjoy the scenery.'), DayActivity(time='5:00 + PM', activity='Return to Santiago', location='Santiago', notes='R\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_VD4AdDcXmJyed5FWcjWG7Ikt\"}},{\"key\":\"gen_ai.prompt.21.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.21.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Dushanbe, Tajikistan' itinerary=TravelItinerary(trip_title='Adventure + Awaits in Dushanbe', destination='Dushanbe, Tajikistan', duration_days=7, + total_budget_estimate='$700', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and City Exploration', activities=[DayActivity(time='09:00 + AM', activity='Arrive in Dushanbe', location='Dushanbe International Airport', + notes='Transfer to hotel via taxi or arranged pickup.'), DayActivity(time='10:30 + AM', activity='Check-in and freshen up', location='Hotel Atlas Dushanbe', + notes='Moderate hotel with good reviews.'), DayActivity(time='12:00 PM', activity='Lunch + at Restaurant Shodlik', location='Shodlik Restaurant', notes='Try local dishes + like Plov and Shashlik.'), DayActivity(time='01:30 PM', activity='Visit the + National Museum of Tajikistan', location='Dushanbe', notes='Explore Tajik + history and culture.'), DayActivity(time='03:30 PM', activity='Walk around + Rudaki Park', location='Rudaki Park', notes='Enjoy the greenery and relax.'), + DayActivity(time='06:00 PM', activity='Dinner at Restaurant Dushanbe', location='Restaurant + Dushanbe', notes='Known for traditional Tajik cuisine.')], meals=['Lunch at + Shodlik', 'Dinner at Restaurant Dushanbe'], accommodation='Hotel Atlas Dushanbe'), + DayPlan(day_number=2, date='2023-10-02', title='Adventure in the Mountains', + activities=[DayActivity(time='08:00 AM', activity='Breakfast at the hotel', + location='Hotel Atlas Dushanbe', notes='Start your day with a hearty breakfast.'), + DayActivity(time='09:00 AM', activity='Day trip to Fann Mountains', location='Fann + Mountains', notes='Hire a local guide for an adventure hike.'), DayActivity(time='12:30 + PM', activity='Picnic lunch at Alaudin Lakes', location='Alaudin Lakes', notes='Pack + lunch from the hotel.'), DayActivity(time='02:00 PM', activity='Hiking around + the lakes', location='Alaudin Lakes', notes='Enjoy stunning views and take + photos.'), DayActivity(time='05:00 PM', activity='Return to Dushanbe', location='Dushanbe',\"}},{\"key\":\"gen_ai.prompt.21.tool_call_id\",\"value\":{\"stringValue\":\"call_lid7TRD6rOxaEhIq6ISjqGG2\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are two thrilling itineraries tailor-made for your adventurous spirit. You + can choose between Santiago, Chile, known for its vibrant city life and stunning + natural landscapes, or Dushanbe, Tajikistan, offering untouched natural beauty + and rich cultural experiences.\\n\\n### Santiago, Chile: Adventurous Exploration + (7 Days)\\n**Highlights:**\\n- Explore vibrant city life in Santiago, including + cultural sites like Plaza de Armas and Cerro Santa Lucia.\\n- Experience the + thrill of hiking in Cajon del Maipo and El Morado National Monument.\\n- Enjoy + a day trip to colorful Valparaiso.\\n- Taste Chilean wines on a Maipo Valley + wine tour.\\n- Adventure in the Andes Mountains with skiing or hiking.\\n\\n**Estimated + Budget:** $800-$1000\\n\\n**Travel Tips:** Learn some basic Spanish phrases, + and always carry water for outdoor activities.\\n\\n**Packing Suggestions:** + Lightweight clothing, comfortable hiking shoes, and sun protection.\\n\\n### + Dushanbe, Tajikistan: Adventure in Nature (7 Days)\\n**Highlights:**\\n- Discover + Dushanbe's cultural sites, including the National Museum and Rudaki Park.\\n- + Embark on an adventurous day in the Fann Mountains with hiking and exploring + the Alaudin Lakes.\\n- Enjoy rafting and hiking in Varzob Valley.\\n- Trek + in the majestic Pamir Mountains to Lake Sarez.\\n\\n**Estimated Budget:** + $700\\n\\n**Travel Tips:** Learn basic Tajik phrases, carry cash, and respect + local traditions.\\n\\n**Packing Suggestions:** Lightweight, layered clothing, + comfortable hiking shoes, and sunscreen.\\n\\nBoth itineraries promise adventure + and memorable experiences. Let me know if you have any preferences or need + further assistance!\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"7540\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"333\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7873\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"flp6zhR87z8=\",\"parentSpanId\":\"bpkI8o2juJI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042292502514000\",\"endTimeUnixNano\":\"1763042293711707000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Asia\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"8pVEfcKzjl0=\",\"parentSpanId\":\"FWUQD7dWK24=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042293718002000\",\"endTimeUnixNano\":\"1763042294872800000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"r7fWWieyOBU=\",\"parentSpanId\":\"OnwfJc+G7eA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042318640277000\",\"endTimeUnixNano\":\"1763042320464533000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Santiago%2C+Chile\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"HtDo/cYr/Zg=\",\"parentSpanId\":\"zVBafqJLSVU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042320470625000\",\"endTimeUnixNano\":\"1763042321464327000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Dushanbe%2C+Tajikistan\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"Vk5JbW85DaI=\",\"parentSpanId\":\"cOiJesC5V+c=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042324782420000\",\"endTimeUnixNano\":\"1763042325888098000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-33.4377756\\u0026longitude=-70.6504502\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bvgm7G6N5UQ=\",\"parentSpanId\":\"VHh495GUkl0=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042325892104000\",\"endTimeUnixNano\":\"1763042326819385000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=38.5856814\\u0026longitude=68.760331\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"k4ESLnjIntM=\",\"parentSpanId\":\"q9X9jhj0kbo=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042329402505000\",\"endTimeUnixNano\":\"1763042329932028000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Santiago,%20Chile\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"OPn/NLRb7OU=\",\"parentSpanId\":\"bKmi3eZoF9E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042329932776000\",\"endTimeUnixNano\":\"1763042332067863000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Dushanbe,%20Tajikistan\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"7BjV1KWqCGg=\",\"parentSpanId\":\"/iqJRoiO3Hs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042338068561000\",\"endTimeUnixNano\":\"1763042378358074000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Santiago, + Chile.\\n\\nTrip Details:\\n- Destination: Santiago, Chile\\n- Duration: 7 + days\\n- Budget: moderate\\n- Interests: adventure\\n- Weather: Current temperature + is 24\xB0C with partly cloudy conditions. Upcoming days will be mostly clear + with temperatures ranging from 26\xB0C to 34\xB0C.\\n- Destination Info: Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and adventure interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS8gIwmKuNXg8IbIbSADLWloOWdb\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2336\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1737\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"599\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Adventurous + Santiago: A 7-Day Exploration\\\",\\\"destination\\\":\\\"Santiago, Chile\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$800-$1000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Santiago\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Santiago International Airport\\\",\\\"location\\\":\\\"Santiago International + Airport\\\",\\\"notes\\\":\\\"Pick up rental car or take a taxi to the accommodation.\\\"},{\\\"time\\\":\\\"11:30 + AM\\\",\\\"activity\\\":\\\"Check-in to accommodation\\\",\\\"location\\\":\\\"Hotel + Plaza El Bosque\\\",\\\"notes\\\":\\\"Moderate budget, centrally located.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Liguria\\\",\\\"location\\\":\\\"Liguria + Restaurant\\\",\\\"notes\\\":\\\"Try the local seafood dishes.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Walk around Plaza de Armas\\\",\\\"location\\\":\\\"Plaza + de Armas\\\",\\\"notes\\\":\\\"Explore the historic heart of Santiago.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Visit Cerro Santa Lucia\\\",\\\"location\\\":\\\"Cerro + Santa Lucia\\\",\\\"notes\\\":\\\"Enjoy panoramic views of the city.\\\"}],\\\"meals\\\":[\\\"Lunch + at Liguria\\\",\\\"Dinner at La Piojera\\\"],\\\"accommodation\\\":\\\"Hotel + Plaza El Bosque\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Cajon + del Maipo Adventure\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Hotel Plaza El Bosque\\\",\\\"notes\\\":\\\"Enjoy + a hearty breakfast.\\\"},{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Depart + for Cajon del Maipo\\\",\\\"location\\\":\\\"Cajon del Maipo\\\",\\\"notes\\\":\\\"A + beautiful area for outdoor activities.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Hiking + in the El Morado National Monument\\\",\\\"location\\\":\\\"El Morado\\\",\\\"notes\\\":\\\"Moderate + hike with stunning views.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Picnic + lunch in nature\\\",\\\"location\\\":\\\"El Morado\\\",\\\"notes\\\":\\\"Pack + a lunch to enjoy in the outdoors.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + Embalse El Yeso\\\",\\\"location\\\":\\\"Embalse El Yeso\\\",\\\"notes\\\":\\\"Take + photos and enjoy the scenery.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to Santiago\\\",\\\"location\\\":\\\"Santiago\\\",\\\"notes\\\":\\\"Relax + after a day of adventure.\\\"}],\\\"meals\\\":[\\\"Breakfast at the hotel\\\",\\\"Picnic + lunch\\\",\\\"Dinner at Los Buenos Muchachos\\\"],\\\"accommodation\\\":\\\"Hotel + Plaza El Bosque\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"cioloVIWits=\",\"parentSpanId\":\"dQSecaXxjXM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042378370827000\",\"endTimeUnixNano\":\"1763042433334128000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Dushanbe, + Tajikistan.\\n\\nTrip Details:\\n- Destination: Dushanbe, Tajikistan\\n- Duration: + 7 days\\n- Budget: moderate\\n- Interests: adventure\\n- Weather: Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\n- + Destination Info: Dushanbe is the capital and largest city of Tajikistan. + It is located in the Gissar Valley, bounded by mountainous terrains, and has + a population of over 1 million people.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and adventure interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS9Lz3AjDms2dEht5anB36agIYPs\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2499\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1923\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"576\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Adventure + Awaits in Dushanbe\\\",\\\"destination\\\":\\\"Dushanbe, Tajikistan\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$700\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and City Exploration\\\",\\\"activities\\\":[{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Dushanbe\\\",\\\"location\\\":\\\"Dushanbe International Airport\\\",\\\"notes\\\":\\\"Transfer + to hotel via taxi or arranged pickup.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Check-in + and freshen up\\\",\\\"location\\\":\\\"Hotel Atlas Dushanbe\\\",\\\"notes\\\":\\\"Moderate + hotel with good reviews.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Restaurant Shodlik\\\",\\\"location\\\":\\\"Shodlik Restaurant\\\",\\\"notes\\\":\\\"Try + local dishes like Plov and Shashlik.\\\"},{\\\"time\\\":\\\"01:30 PM\\\",\\\"activity\\\":\\\"Visit + the National Museum of Tajikistan\\\",\\\"location\\\":\\\"Dushanbe\\\",\\\"notes\\\":\\\"Explore + Tajik history and culture.\\\"},{\\\"time\\\":\\\"03:30 PM\\\",\\\"activity\\\":\\\"Walk + around Rudaki Park\\\",\\\"location\\\":\\\"Rudaki Park\\\",\\\"notes\\\":\\\"Enjoy + the greenery and relax.\\\"},{\\\"time\\\":\\\"06:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Restaurant Dushanbe\\\",\\\"location\\\":\\\"Restaurant Dushanbe\\\",\\\"notes\\\":\\\"Known + for traditional Tajik cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Shodlik\\\",\\\"Dinner + at Restaurant Dushanbe\\\"],\\\"accommodation\\\":\\\"Hotel Atlas Dushanbe\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Adventure + in the Mountains\\\",\\\"activities\\\":[{\\\"time\\\":\\\"08:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Hotel Atlas Dushanbe\\\",\\\"notes\\\":\\\"Start + your day with a hearty breakfast.\\\"},{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Day + trip to Fann Mountains\\\",\\\"location\\\":\\\"Fann Mountains\\\",\\\"notes\\\":\\\"Hire + a local guide for an adventure hike.\\\"},{\\\"time\\\":\\\"12:30 PM\\\",\\\"activity\\\":\\\"Picnic + lunch at Alaudin Lakes\\\",\\\"location\\\":\\\"Alaudin Lakes\\\",\\\"notes\\\":\\\"Pack + lunch from the hotel.\\\"},{\\\"time\\\":\\\"02:00 PM\\\",\\\"activity\\\":\\\"Hiking + around the lakes\\\",\\\"location\\\":\\\"Alaudin Lakes\\\",\\\"notes\\\":\\\"Enjoy + stunning views and take photos.\\\"},{\\\"time\\\":\\\"05:00 PM\\\",\\\"activity\\\":\\\"Return + to Dushanbe\\\",\\\"location\\\":\\\"Dushanbe\\\",\\\"notes\\\":\\\"Relax + after an adventurous day.\\\"},{\\\"time\\\":\\\"07:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Kebab House\\\",\\\"location\\\":\\\"Kebab House\\\",\\\"notes\\\":\\\"Savor + delicious kebabs and local drinks.\\\"}],\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '133017' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/b37b4c7727a54482f8c71cb88799c108 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"X6XgDzvu2/o=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214208334000\",\"endTimeUnixNano\":\"1763042288332434000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ykfIkleyfn8=\",\"parentSpanId\":\"X6XgDzvu2/o=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214208605000\",\"endTimeUnixNano\":\"1763042288332353000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"JhAH0yZx3Ik=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214215610000\",\"endTimeUnixNano\":\"1763042217450079000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"928\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"21\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"949\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"7Pd25D1LOvw=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042217450618000\",\"endTimeUnixNano\":\"1763042219069521000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"Un2+PGYQ9to=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042219072031000\",\"endTimeUnixNano\":\"1763042221139663000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1456\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"19\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1475\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"IbK2qPHFUEU=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042221140625000\",\"endTimeUnixNano\":\"1763042223209324000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"f1ybKu8yoWY=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042223210273000\",\"endTimeUnixNano\":\"1763042226350110000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1544\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"36\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1580\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"Mix/K/BkE/k=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042226350768000\",\"endTimeUnixNano\":\"1763042227769106000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ZIkq2QIEfJc=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042227770300000\",\"endTimeUnixNano\":\"1763042229857312000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1862\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"19\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1881\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"th//dB4A1jI=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042229857982000\",\"endTimeUnixNano\":\"1763042230935832000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"rnS972TaPFE=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042230937025000\",\"endTimeUnixNano\":\"1763042234891211000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b5b6d48194ac4ff233dc086dc6\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Bratislava' info=DestinationInfo(title='Bratislava', + summary='Capital and largest city of Slovakia', extract='Bratislava is the + capital and largest city of the Slovak Republic and the fourth largest of + all cities on the river Danube. Officially, the population of the city is + about 475,000; however, some sources estimate the daily number of people moving + around the city based on mobile phone SIM cards is more than 570,000. Bratislava + is in southwestern Slovakia at the foot of the Little Carpathians, occupying + both banks of the Danube and the left bank of the River Morava. The city is + situated on the border of three countries\u2014Slovakia, Austria, and Hungary\u2014and + is the only national capital to have land borders with two other sovereign + states. Its geographic position places it exceptionally close to the Austrian + capital Vienna, making them the closest pair of capital cities in Europe at + just 50 kilometres (31\\\\xa0mi) apart.')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"cultural + exploration, history, local cuisine\\\",\\\"weather_info\\\":\\\"Current temperature + is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\\",\\\"destination_details\\\":\\\"Bratislava is the + capital and largest city of Slovakia, known for its location by the Danube + River and proximity to Austria and Hungary. It's an important cultural, economic, + and educational center of the region.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_Ka1nJGRoPHD4PU7UUYNV3Gpi\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2097\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"136\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2233\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"4+Xf2IVfm8g=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042234891664000\",\"endTimeUnixNano\":\"1763042274301203000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"tlKdJZeE6c0=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042274303621000\",\"endTimeUnixNano\":\"1763042288331400000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b5b6d48194ac4ff233dc086dc6\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Bratislava' info=DestinationInfo(title='Bratislava', + summary='Capital and largest city of Slovakia', extract='Bratislava is the + capital and largest city of the Slovak Republic and the fourth largest of + all cities on the river Danube. Officially, the population of the city is + about 475,000; however, some sources estimate the daily number of people moving + around the city based on mobile phone SIM cards is more than 570,000. Bratislava + is in southwestern Slovakia at the foot of the Little Carpathians, occupying + both banks of the Danube and the left bank of the River Morava. The city is + situated on the border of three countries\u2014Slovakia, Austria, and Hungary\u2014and + is the only national capital to have land borders with two other sovereign + states. Its geographic position places it exceptionally close to the Austrian + capital Vienna, making them the closest pair of capital cities in Europe at + just 50 kilometres (31\\\\xa0mi) apart.')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b8467481948a834b801a722259\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"cultural + exploration, history, local cuisine\\\",\\\"weather_info\\\":\\\"Current temperature + is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\\",\\\"destination_details\\\":\\\"Bratislava is the + capital and largest city of Slovakia, known for its location by the Danube + River and proximity to Austria and Hungary. It's an important cultural, economic, + and educational center of the region.\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 5-day itinerary for Bratislava' itinerary=TravelItinerary(trip_title='Cultural + Journey Through Bratislava', destination='Bratislava', duration_days=5, total_budget_estimate='$800', + daily_plans=[DayPlan(day_number=1, date='2023-11-15', title='Arrival and Old + Town Exploration', activities=[DayActivity(time='10:00 AM', activity='Arrive + in Bratislava', location='Bratislava Airport', notes='Take a taxi or shuttle + to the city center.'), DayActivity(time='11:30 AM', activity='Check-in to + accommodation', location='Hotel Danubia', notes='Moderate hotel near the city + center.'), DayActivity(time='12:30 PM', activity='Lunch at Slovak Pub', location='Obchodn\xE1 + 62', notes='Try traditional Slovak dishes like bryndzov\xE9 halu\u0161ky.'), + DayActivity(time='2:00 PM', activity='Stroll through the Old Town', location='Bratislava + Old Town', notes=\\\"Visit St. Michael's Gate, Main Square, and the Old Town + Hall.\\\"), DayActivity(time='4:00 PM', activity='Visit the Bratislava City + Museum', location='Radni\u010Dn\xE1 1', notes=\\\"Learn about the city's history.\\\"), + DayActivity(time='6:00 PM', activity='Dinner at Flagship Restaurant', location='Hlavn\xE9 + n\xE1mestie 4', notes='Enjoy local cuisine with a modern twist.')], meals=['Lunch + at Slovak Pub', 'Dinner at Flagship Restaurant'], accommodation='Hotel Danubia'), + DayPlan(day_number=2, date='2023-11-16', title='Castles and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at hotel', location='Hotel Danubia', notes='Enjoy + a complimentary breakfast.'), DayActivity(time='9:30 AM', activity='Visit + Bratislava Castle', location='Bratislava Castle', notes='Explore the castle + and enjoy views of the Danube.'), DayActivity(time='12:00 PM', activity='Lunch + at Caf\xE9 23', location='Karpatsk\xE1 23', notes='A trendy caf\xE9 with local + dishes.'), DayActivity(time='1:30 PM', activity='Tour the Slovak National + Gallery', location='R\xE1zusovo n\xE1bre\u017Eie 2', notes='Explore Slovak + art and culture.'), DayActivity(time='4:00 PM', activity='Relax at Sad Janka + Kr\xE1\u013Ea park', location='\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_Ka1nJGRoPHD4PU7UUYNV3Gpi\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"I've + planned a 5-day cultural journey to Bratislava, Slovakia for you. Here's your + itinerary:\\n\\n### Cultural Journey Through Bratislava\\n\\n#### **Day 1: + Arrival and Old Town Exploration**\\n- **10:00 AM:** Arrive in Bratislava + - Shuttle or taxi to city center.\\n- **11:30 AM:** Check-in to Hotel Danubia.\\n- + **12:30 PM:** Lunch at Slovak Pub - Try bryndzov\xE9 halu\u0161ky.\\n- **2:00 + PM:** Stroll through the Old Town - Visit St. Michael's Gate.\\n- **4:00 PM:** + Visit the Bratislava City Museum.\\n- **6:00 PM:** Dinner at Flagship Restaurant.\\n\\n#### + **Day 2: Castles and Culture**\\n- **8:00 AM:** Breakfast at Hotel Danubia.\\n- + **9:30 AM:** Visit Bratislava Castle - Great views of the Danube.\\n- **12:00 + PM:** Lunch at Caf\xE9 23.\\n- **1:30 PM:** Tour the Slovak National Gallery.\\n- + **4:00 PM:** Relax at Sad Janka Kr\xE1\u013Ea park.\\n- **7:00 PM:** Dinner + at Modr\xE1 Hviezda.\\n\\n#### **Day 3: Day Trip to Devin Castle**\\n- **8:00 + AM:** Breakfast at Hotel Danubia.\\n- **9:30 AM:** Travel to Devin Castle.\\n- + **10:00 AM:** Explore Devin Castle.\\n- **12:30 PM:** Lunch at Restaurant + Devin.\\n- **2:00 PM:** Return to Bratislava.\\n- **3:00 PM:** Visit the Blue + Church.\\n- **5:00 PM:** Free time in Old Town.\\n- **7:00 PM:** Dinner at + U Zlateho Hruska.\\n\\n#### **Day 4: Art and History**\\n- **8:00 AM:** Breakfast + at Hotel Danubia.\\n- **9:30 AM:** Visit the Museum of Jewish Culture.\\n- + **11:30 AM:** Explore the Bratislava City Gallery.\\n- **1:00 PM:** Lunch + at Urban House.\\n- **3:00 PM:** Visit the Presidential Palace.\\n- **5:00 + PM:** Dinner at Primi.\\n\\n#### **Day 5: Departure and Local Markets**\\n- + **8:00 AM:** Breakfast at Hotel Danubia.\\n- **9:30 AM:** Visit the Old Market + Hall.\\n- **11:00 AM:** Free time for shopping.\\n- **1:00 PM:** Lunch at + the market.\\n- **2:30 PM:** Check-out from hotel.\\n- **3:00 PM:** Transfer + to airport.\\n\\n### Travel Tips\\n- Use public transport for getting around + the city.\\n- Carry an umbrella or rain jacket for rain on November 17 and + 19.\\n- Learn basic Slovak phrases to enhance local interactions.\\n\\n### + Packing Suggestions\\n- Warm clothing layers and comfortable walk\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"3764\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"608\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4372\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ga2ddWDpwj0=\",\"parentSpanId\":\"7Pd25D1LOvw=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042217954037000\",\"endTimeUnixNano\":\"1763042219061913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"qlkYoPsmsxQ=\",\"parentSpanId\":\"IbK2qPHFUEU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042222244554000\",\"endTimeUnixNano\":\"1763042223207393000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Bratislava\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"OxRjSied6Tk=\",\"parentSpanId\":\"Mix/K/BkE/k=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042226855593000\",\"endTimeUnixNano\":\"1763042227766872000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=48.1516988\\u0026longitude=17.1093063\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"hMj8FLIUcPo=\",\"parentSpanId\":\"th//dB4A1jI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042230364285000\",\"endTimeUnixNano\":\"1763042230934612000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Bratislava\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"kUQ5JjMwU3s=\",\"parentSpanId\":\"4+Xf2IVfm8g=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042235404005000\",\"endTimeUnixNano\":\"1763042274299868000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 5-day itinerary for Bratislava.\\n\\nTrip + Details:\\n- Destination: Bratislava\\n- Duration: 5 days\\n- Budget: moderate\\n- + Interests: cultural exploration, history, local cuisine\\n- Weather: Current + temperature is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\n- Destination Info: Bratislava is the capital and + largest city of Slovakia, known for its location by the Danube River and proximity + to Austria and Hungary. It's an important cultural, economic, and educational + center of the region.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and cultural exploration, history, local cuisine + interests.\\nEach day should have 3-5 activities with specific times, locations, + and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS72PQr8E6ISNBF6AHyK4FMvQhCE\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2032\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1443\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"589\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Cultural + Journey Through Bratislava\\\",\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"total_budget_estimate\\\":\\\"$800\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-15\\\",\\\"title\\\":\\\"Arrival + and Old Town Exploration\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Bratislava\\\",\\\"location\\\":\\\"Bratislava Airport\\\",\\\"notes\\\":\\\"Take + a taxi or shuttle to the city center.\\\"},{\\\"time\\\":\\\"11:30 AM\\\",\\\"activity\\\":\\\"Check-in + to accommodation\\\",\\\"location\\\":\\\"Hotel Danubia\\\",\\\"notes\\\":\\\"Moderate + hotel near the city center.\\\"},{\\\"time\\\":\\\"12:30 PM\\\",\\\"activity\\\":\\\"Lunch + at Slovak Pub\\\",\\\"location\\\":\\\"Obchodn\xE1 62\\\",\\\"notes\\\":\\\"Try + traditional Slovak dishes like bryndzov\xE9 halu\u0161ky.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Stroll through the Old Town\\\",\\\"location\\\":\\\"Bratislava + Old Town\\\",\\\"notes\\\":\\\"Visit St. Michael's Gate, Main Square, and + the Old Town Hall.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Visit + the Bratislava City Museum\\\",\\\"location\\\":\\\"Radni\u010Dn\xE1 1\\\",\\\"notes\\\":\\\"Learn + about the city's history.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Flagship Restaurant\\\",\\\"location\\\":\\\"Hlavn\xE9 n\xE1mestie 4\\\",\\\"notes\\\":\\\"Enjoy + local cuisine with a modern twist.\\\"}],\\\"meals\\\":[\\\"Lunch at Slovak + Pub\\\",\\\"Dinner at Flagship Restaurant\\\"],\\\"accommodation\\\":\\\"Hotel + Danubia\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-16\\\",\\\"title\\\":\\\"Castles + and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at hotel\\\",\\\"location\\\":\\\"Hotel Danubia\\\",\\\"notes\\\":\\\"Enjoy + a complimentary breakfast.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Bratislava Castle\\\",\\\"location\\\":\\\"Bratislava Castle\\\",\\\"notes\\\":\\\"Explore + the castle and enjoy views of the Danube.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Caf\xE9 23\\\",\\\"location\\\":\\\"Karpatsk\xE1 23\\\",\\\"notes\\\":\\\"A + trendy caf\xE9 with local dishes.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Tour + the Slovak National Gallery\\\",\\\"location\\\":\\\"R\xE1zusovo n\xE1bre\u017Eie + 2\\\",\\\"notes\\\":\\\"Explore Slovak art and culture.\\\"},{\\\"time\\\":\\\"4:00 + PM\\\",\\\"activity\\\":\\\"Relax at Sad Janka Kr\xE1\u013Ea park\\\",\\\"location\\\":\\\"Sad + Janka Kr\xE1\u013Ea\\\",\\\"notes\\\":\\\"Enjoy nature and views of the Danube.\\\"},{\\\"time\\\":\\\"7:00 + PM\\\",\\\"activity\\\":\\\"Dinner at Modr\xE1 Hviezda\\\",\\\"location\\\":\\\"Hradn\xE9 + n\xE1mestie 2\\\",\\\"notes\\\":\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '86232' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/42ff472d7feb6215bec0cf4e350675b2 + response: + body: + string: '{"batches":[{"resource":{"attributes":[{"key":"telemetry.sdk.language","value":{"stringValue":"python"}},{"key":"telemetry.sdk.name","value":{"stringValue":"opentelemetry"}},{"key":"telemetry.sdk.version","value":{"stringValue":"1.38.0"}},{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},"scopeSpans":[{"scope":{"name":"opentelemetry.instrumentation.openai_agents","version":"0.47.5"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"NPzxuz+vo54=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187236891000","endTimeUnixNano":"1763042189460181000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"gen_ai.prompt.0.role","value":{"stringValue":"user"}},{"key":"gen_ai.prompt.0.content","value":{"stringValue":"I + want to visit New York for 7 days with a moderate budget. I love history. + Create me an itinerary."}},{"key":"llm.request.functions.0.name","value":{"stringValue":"search_destinations"}},{"key":"llm.request.functions.0.description","value":{"stringValue":"Search + for travel destinations by region or subregion using REST Countries API."}},{"key":"llm.request.functions.0.parameters","value":{"stringValue":"{\"properties\": + {\"region\": {\"default\": \"\", \"description\": \"Region to search (e.g., + \\\"Europe\\\", \\\"Asia\\\", \\\"Americas\\\")\", \"title\": \"Region\", + \"type\": \"string\"}, \"subregion\": {\"default\": \"\", \"description\": + \"Subregion to search (e.g., \\\"Southern Europe\\\", \\\"Southeast Asia\\\")\", + \"title\": \"Subregion\", \"type\": \"string\"}}, \"title\": \"search_destinations_args\", + \"type\": \"object\", \"additionalProperties\": false, \"required\": [\"region\", + \"subregion\"]}"}},{"key":"llm.request.functions.1.name","value":{"stringValue":"get_location_coordinates"}},{"key":"llm.request.functions.1.description","value":{"stringValue":"Get + coordinates for a location using Nominatim (OpenStreetMap) API."}},{"key":"llm.request.functions.1.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the city or location\", \"title\": + \"Location Name\", \"type\": \"string\"}}, \"required\": [\"location_name\"], + \"title\": \"get_location_coordinates_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.2.name","value":{"stringValue":"get_weather_forecast"}},{"key":"llm.request.functions.2.description","value":{"stringValue":"Get + current weather and 7-day forecast using Open-Meteo API (no API key required)."}},{"key":"llm.request.functions.2.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the location\", \"title\": + \"Location Name\", \"type\": \"string\"}, \"latitude\": {\"description\": + \"Latitude coordinate\", \"title\": \"Latitude\", \"type\": \"number\"}, \"longitude\": + {\"description\": \"Longitude coordinate\", \"title\": \"Longitude\", \"type\": + \"number\"}}, \"required\": [\"location_name\", \"latitude\", \"longitude\"], + \"title\": \"get_weather_forecast_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.3.name","value":{"stringValue":"get_destination_info"}},{"key":"llm.request.functions.3.description","value":{"stringValue":"Get + information about a destination from Wikipedia API."}},{"key":"llm.request.functions.3.parameters","value":{"stringValue":"{\"properties\": + {\"destination_name\": {\"description\": \"Name of the destination\", \"title\": + \"Destination Name\", \"type\": \"string\"}}, \"required\": [\"destination_name\"], + \"title\": \"get_destination_info_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.4.name","value":{"stringValue":"calculate_travel_distance"}},{"key":"llm.request.functions.4.description","value":{"stringValue":"Calculate + distance and estimated flight time between two locations.\nUses Haversine + formula for distance calculation."}},{"key":"llm.request.functions.4.parameters","value":{"stringValue":"{\"properties\": + {\"from_location\": {\"description\": \"Starting location name\", \"title\": + \"From Location\", \"type\": \"string\"}, \"to_location\": {\"description\": + \"Destination location name\", \"title\": \"To Location\", \"type\": \"string\"}, + \"from_lat\": {\"description\": \"Starting latitude\", \"title\": \"From Lat\", + \"type\": \"number\"}, \"from_lon\": {\"description\": \"Starting longitude\", + \"title\": \"From Lon\", \"type\": \"number\"}, \"to_lat\": {\"description\": + \"Destination latitude\", \"title\": \"To Lat\", \"type\": \"number\"}, \"to_lon\": + {\"description\": \"Destination longitude\", \"title\": \"To Lon\", \"type\": + \"number\"}}, \"required\": [\"from_location\", \"to_location\", \"from_lat\", + \"from_lon\", \"to_lat\", \"to_lon\"], \"title\": \"calculate_travel_distance_args\", + \"type\": \"object\", \"additionalProperties\": false}"}},{"key":"llm.request.functions.5.name","value":{"stringValue":"create_itinerary"}},{"key":"llm.request.functions.5.description","value":{"stringValue":"Create + a detailed day-by-day travel itinerary using AI."}},{"key":"llm.request.functions.5.parameters","value":{"stringValue":"{\"properties\": + {\"destination\": {\"description\": \"Main destination for the trip\", \"title\": + \"Destination\", \"type\": \"string\"}, \"duration_days\": {\"description\": + \"Number of days for the trip\", \"title\": \"Duration Days\", \"type\": \"integer\"}, + \"budget\": {\"description\": \"Budget level (budget, moderate, luxury)\", + \"title\": \"Budget\", \"type\": \"string\"}, \"interests\": {\"description\": + \"Traveler interests (e.g., food, history, nature)\", \"title\": \"Interests\", + \"type\": \"string\"}, \"weather_info\": {\"default\": \"\", \"description\": + \"Weather forecast information (optional)\", \"title\": \"Weather Info\", + \"type\": \"string\"}, \"destination_details\": {\"default\": \"\", \"description\": + \"Additional destination details (optional)\", \"title\": \"Destination Details\", + \"type\": \"string\"}}, \"required\": [\"destination\", \"duration_days\", + \"budget\", \"interests\", \"weather_info\", \"destination_details\"], \"title\": + \"create_itinerary_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"gen_ai.request.temperature","value":{"doubleValue":1}},{"key":"gen_ai.request.top_p","value":{"doubleValue":1}},{"key":"gen_ai.request.model","value":{"stringValue":"gpt-4o-2024-08-06"}},{"key":"gen_ai.completion.0.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.0.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.0.tool_calls.0.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.0.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\"}"}},{"key":"gen_ai.completion.0.tool_calls.0.id","value":{"stringValue":"call_M6Cz1ZtgBBRVhPAKwGhP4HkH"}},{"key":"gen_ai.completion.1.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.1.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.1.tool_calls.0.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.1.tool_calls.0.arguments","value":{"stringValue":"{\"destination_name\":\"New + York\"}"}},{"key":"gen_ai.completion.1.tool_calls.0.id","value":{"stringValue":"call_XjU0qIs2w9toMdl7I78qNPRd"}},{"key":"gen_ai.completion.2.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.2.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.2.tool_calls.0.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.2.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\",\"latitude\":40.7128,\"longitude\":-74.006}"}},{"key":"gen_ai.completion.2.tool_calls.0.id","value":{"stringValue":"call_vW1iVMpxm4W5VAjz3uvhFwxl"}},{"key":"gen_ai.usage.prompt_tokens","value":{"intValue":"313"}},{"key":"gen_ai.usage.completion_tokens","value":{"intValue":"81"}},{"key":"llm.usage.total_tokens","value":{"intValue":"394"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Jn+55BUIsg8=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042192790536000","endTimeUnixNano":"1763042197342144000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"qUtAVv3MWrg=","parentSpanId":"i9g02JupVjo=","name":"Travel + Planner Agent.agent","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187234430000","endTimeUnixNano":"1763042197342199000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"agent"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"i9g02JupVjo=","name":"Agent + Workflow","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187232503000","endTimeUnixNano":"1763042197342213000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"workflow"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.workflow.name","value":{"stringValue":"Agent + Workflow"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"ndtaGw2O47w=","parentSpanId":"qUtAVv3MWrg=","name":"get_destination_info.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461414000","endTimeUnixNano":"1763042192787831000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"lAvl8cSGCdQ=","parentSpanId":"qUtAVv3MWrg=","name":"get_weather_forecast.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461614000","endTimeUnixNano":"1763042192787979000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"DRPQ4fXYGOk=","parentSpanId":"qUtAVv3MWrg=","name":"get_location_coordinates.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461045000","endTimeUnixNano":"1763042192788272000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}}]},{"scope":{"name":"opentelemetry.instrumentation.requests","version":"0.59b0"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"gvjOX9XKnIQ=","parentSpanId":"ndtaGw2O47w=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042189966888000","endTimeUnixNano":"1763042190649032000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://en.wikipedia.org/api/rest_v1/page/summary/New%20York"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Vd7J6WeIkI0=","parentSpanId":"lAvl8cSGCdQ=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042190650755000","endTimeUnixNano":"1763042191744238000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://api.open-meteo.com/v1/forecast?latitude=40.7128\u0026longitude=-74.006\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\u0026timezone=auto\u0026forecast_days=7"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"QO7ZImsbB1g=","parentSpanId":"DRPQ4fXYGOk=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042191747300000","endTimeUnixNano":"1763042192786263000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://nominatim.openstreetmap.org/search?q=New+York\u0026format=json\u0026limit=1"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}}]}]}]}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '14143' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/9a8cb895bee63fabb705329a05ced33b + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"VVGqP3Zlh/I=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057714246000\",\"endTimeUnixNano\":\"1763042185226841000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ebIwige/t/I=\",\"parentSpanId\":\"VVGqP3Zlh/I=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057715150000\",\"endTimeUnixNano\":\"1763042185226760000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"XmMF4QV1t5I=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042160420265000\",\"endTimeUnixNano\":\"1763042185224042000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31f412c8193854f3d40a67569bb\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3203a048193a1db4cd095de78a1\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.19.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Malta' itinerary=TravelItinerary(trip_title='Malta: + A Luxurious Journey Through History and Culture', destination='Malta', duration_days=7, + total_budget_estimate='\u20AC5000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Valletta', activities=[DayActivity(time='10:00 AM', activity='Check + into the hotel.', location='Palazzo Consiglia, Valletta', notes='Luxurious + boutique hotel with a historic feel.'), DayActivity(time='12:00 PM', activity='Lunch + at the hotel restaurant.', location='Palazzo Consiglia', notes='Try local + specialties.'), DayActivity(time='2:00 PM', activity='Explore Valletta on + foot.', location='Valletta', notes=\\\"Visit St. John's Co-Cathedral and the + Upper Barracca Gardens.\\\"), DayActivity(time='5:00 PM', activity='Enjoy + a sunset at the Barracca Lift.', location='Upper Barracca Gardens', notes='Stunning + views of the Grand Harbour.'), DayActivity(time='7:30 PM', activity='Dinner + at The Harbour Club.', location='Valletta', notes='Fine dining with Mediterranean + cuisine.')], meals=['Lunch at Palazzo Consiglia', 'Dinner at The Harbour Club'], + accommodation='Palazzo Consiglia, Valletta'), DayPlan(day_number=2, date='2023-10-02', + title='Historical Wonders of Mdina', activities=[DayActivity(time='9:00 AM', + activity='Breakfast at the hotel.', location='Palazzo Consiglia', notes='Enjoy + a gourmet breakfast.'), DayActivity(time='10:30 AM', activity='Visit Mdina, + the Silent City.', location='Mdina', notes='Explore the narrow streets and + historic architecture.'), DayActivity(time='1:00 PM', activity='Lunch at Fontanella + Tea Garden.', location='Mdina', notes='Famous for its cakes and views.'), + DayActivity(time='3:00 PM', activity=\\\"Visit St. Paul's Cathedral and the + Mdina Dungeons.\\\", location='Mdina', notes='Immerse in the history of the + city.'), DayActivity(time='6:00 PM', activity='Return to Valletta.', location='Valletta', + notes='Free evening to relax.'), DayActivity(time='8:00 PM', activity='Dinner + at La Viletta.', location='Valletta', n\"}},{\"key\":\"gen_ai.prompt.19.tool_call_id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Paradise + Found: A Luxurious Escape to Barbados', destination='Barbados', duration_days=7, + total_budget_estimate='$5,000', daily_plans=[DayPlan(day_number=1, date='2023-11-01', + title='Arrival and Beach Relaxation', activities=[DayActivity(time='10:00 + AM', activity='Arrival at Grantley Adams International Airport', location='Bridgetown', + notes='Private transfer to hotel.'), DayActivity(time='12:00 PM', activity='Check-in + at Sandy Lane Hotel', location='Sandy Lane, St. James', notes='Enjoy a welcome + drink upon arrival.'), DayActivity(time='1:00 PM', activity='Lunch at The + Bajan Blue', location='Sandy Lane Hotel', notes='Try the fresh catch of the + day.'), DayActivity(time='3:00 PM', activity='Relax at the beach', location='Sandy + Lane Beach', notes='Enjoy complimentary beach services and cabanas.'), DayActivity(time='7:00 + PM', activity=\\\"Dinner at L'Acajou\\\", location='Sandy Lane Hotel', notes='Reserve + a table for an oceanfront dining experience.')], meals=['Lunch at The Bajan + Blue', \\\"Dinner at L'Acajou\\\"], accommodation='Sandy Lane Hotel'), DayPlan(day_number=2, + date='2023-11-02', title='Exploring the Nature and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at The Bajan Blue', location='Sandy Lane Hotel', + notes='Buffet breakfast included.'), DayActivity(time='9:30 AM', activity=\\\"Visit + Harrison's Cave\\\", location='Welches, St. Thomas', notes='Guided tram tour + of the limestone caves.'), DayActivity(time='12:00 PM', activity='Lunch at + The Cliff', location='The Cliff, St. James', notes='One of the best views + in Barbados.'), DayActivity(time='2:00 PM', activity='Explore the Andromeda + Botanic Gardens', location='Bathsheba', notes='Stroll through beautiful tropical + plants.'), DayActivity(time='5:00 PM', activity='Return to hotel and relax + by the pool', location='Sandy Lane Hotel', notes='Enjoy the sunset views.'), + DayActivity(time='8:00 PM', activity='Dinner at The Tides', location='Holetown', + notes='Fin\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a luxurious winter getaway itinerary for two amazing destinations: Malta and + Barbados. You can choose either for a memorable experience!\\n\\n### Malta: + A Luxurious Journey Through History and Culture\\n\\n#### Overview:\\n- **Duration:** + 7 Days\\n- **Budget:** \u20AC5000\\n- **Interests:** History, culture, relaxation\\n- + **Weather:** Partly cloudy, 14\xB0C to 25\xB0C\\n\\n#### Highlights:\\n- **Explore + Valletta:** Discover historic sites like St. John's Co-Cathedral and the Upper + Barracca Gardens.\\n- **Visit Mdina:** Wander through the narrow streets of + the Silent City.\\n- **Cruise the Blue Lagoon:** Relax and swim in crystal-clear + waters on Comino Island.\\n- **Art and Culture in Valletta:** Enjoy museums, + the Grand Master's Palace, and traditional Maltese cuisine.\\n- **Day in Gozo:** + Experience UNESCO sites and enjoy local cuisine in Xlendi Bay.\\n- **Relaxation + and Spa Day:** Indulge in luxury spa treatments and wine tasting.\\n\\n#### + Suggested Activities:\\n- Stroll through the National Museum of Archaeology.\\n- + Enjoy a Michelin-starred dining experience at Noni.\\n- Unwind at the historic + and luxurious Palazzo Consiglia.\\n\\n---\\n\\n### Barbados: Paradise Found\\n\\n#### + Overview:\\n- **Duration:** 7 Days\\n- **Budget:** $5,000\\n- **Interests:** + Beach, nature, relaxation\\n- **Weather:** Mainly clear with occasional rain, + 26\xB0C to 28\xB0C\\n\\n#### Highlights:\\n- **Stay at Sandy Lane:** Experience + luxury at a top-notch hotel.\\n- **Catamaran Cruise:** Snorkel and swim with + turtles.\\n- **Visit Harrison's Cave:** Explore stunning limestone formations.\\n- + **Beach Relaxation:** Enjoy water sports and sunbathing at Sandy Lane Beach.\\n- + **Cultural Sightseeing:** Visit the Barbados Museum and Andromeda Botanic + Gardens.\\n- **Island Adventure:** Discover the Animal Flower Cave and Bathsheba + Beach.\\n\\n#### Suggested Activities:\\n- Indulge in a private yoga session + on the beach.\\n- Savor local flavors at dining spots like The Cliff and Oistins + Fish Fry.\\n- Book a spa treatment for ultimate relaxation.\\n\\nChoose either + Malta for its rich history and culture or Barbados for its tropical para\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"6963\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"482\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7445\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"embCySXGZiM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057716128000\",\"endTimeUnixNano\":\"1763042059661983000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"60\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"525\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"mC8CCwLW76g=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663097000\",\"endTimeUnixNano\":\"1763042062451067000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ssDCKShkL44=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663477000\",\"endTimeUnixNano\":\"1763042062451172000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fuu6tO+Ndlo=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042062452499000\",\"endTimeUnixNano\":\"1763042064799092000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1003\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1055\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fvHJdvNTMws=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064799830000\",\"endTimeUnixNano\":\"1763042067739773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"T8dJZDmT4I4=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064800127000\",\"endTimeUnixNano\":\"1763042067739862000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"v6cWcKHOCjI=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042067741423000\",\"endTimeUnixNano\":\"1763042070448846000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1077\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"86\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1163\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"UEIsxC37pwE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449031000\",\"endTimeUnixNano\":\"1763042072801957000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"THKreibx8ug=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449103000\",\"endTimeUnixNano\":\"1763042072802080000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"YBTnmbTN6jE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042072803790000\",\"endTimeUnixNano\":\"1763042075107212000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1391\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1443\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"SxqLZKfWCmA=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108148000\",\"endTimeUnixNano\":\"1763042076670490000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"5dBBk3l1eiQ=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108516000\",\"endTimeUnixNano\":\"1763042076670556000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"cE+1FFJhlnU=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076671577000\",\"endTimeUnixNano\":\"1763042082126494000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1535\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"208\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1743\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"QAlZHx6RuLM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082127730000\",\"endTimeUnixNano\":\"1763042160416987000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"th2IYCV4hsE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082128207000\",\"endTimeUnixNano\":\"1763042160417136000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HDPGse/8x4o=\",\"parentSpanId\":\"mC8CCwLW76g=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042060166394000\",\"endTimeUnixNano\":\"1763042061283475000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"IA+JMvfXJl8=\",\"parentSpanId\":\"ssDCKShkL44=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042061306153000\",\"endTimeUnixNano\":\"1763042062439682000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"PzmXYx0yNzo=\",\"parentSpanId\":\"fvHJdvNTMws=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042065903652000\",\"endTimeUnixNano\":\"1763042066847763000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Malta\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ON9RLT3j6a4=\",\"parentSpanId\":\"T8dJZDmT4I4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042066849545000\",\"endTimeUnixNano\":\"1763042067737708000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"M2Q2FV2cXIU=\",\"parentSpanId\":\"UEIsxC37pwE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042070951475000\",\"endTimeUnixNano\":\"1763042071877256000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=35.8885993\\u0026longitude=14.4476911\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Ze33HN9DUpc=\",\"parentSpanId\":\"THKreibx8ug=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042071879722000\",\"endTimeUnixNano\":\"1763042072800019000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HKpm5tCLJzU=\",\"parentSpanId\":\"SxqLZKfWCmA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042075611055000\",\"endTimeUnixNano\":\"1763042076145487000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Malta\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"lAzYqhlHfpg=\",\"parentSpanId\":\"5dBBk3l1eiQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076148467000\",\"endTimeUnixNano\":\"1763042076669422000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Znd3vlNcirg=\",\"parentSpanId\":\"th2IYCV4hsE=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042123087205000\",\"endTimeUnixNano\":\"1763042160414874000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: beach, nature, relaxation\\n- Weather: Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\n- Destination Info: Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the luxury budget level and beach, nature, + relaxation interests.\\nEach day should have 3-5 activities with specific + times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS5EtpivASLkttPJzZ83ik15FlLX\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2260\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1719\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"541\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Paradise + Found: A Luxurious Escape to Barbados\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$5,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-01\\\",\\\"title\\\":\\\"Arrival + and Beach Relaxation\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrival + at Grantley Adams International Airport\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Private + transfer to hotel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at Sandy Lane Hotel\\\",\\\"location\\\":\\\"Sandy Lane, St. James\\\",\\\"notes\\\":\\\"Enjoy + a welcome drink upon arrival.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Try + the fresh catch of the day.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at the beach\\\",\\\"location\\\":\\\"Sandy Lane Beach\\\",\\\"notes\\\":\\\"Enjoy + complimentary beach services and cabanas.\\\"},{\\\"time\\\":\\\"7:00 PM\\\",\\\"activity\\\":\\\"Dinner + at L'Acajou\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Reserve + a table for an oceanfront dining experience.\\\"}],\\\"meals\\\":[\\\"Lunch + at The Bajan Blue\\\",\\\"Dinner at L'Acajou\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-02\\\",\\\"title\\\":\\\"Exploring + the Nature and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Buffet + breakfast included.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Harrison's Cave\\\",\\\"location\\\":\\\"Welches, St. Thomas\\\",\\\"notes\\\":\\\"Guided + tram tour of the limestone caves.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Cliff\\\",\\\"location\\\":\\\"The Cliff, St. James\\\",\\\"notes\\\":\\\"One + of the best views in Barbados.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + the Andromeda Botanic Gardens\\\",\\\"location\\\":\\\"Bathsheba\\\",\\\"notes\\\":\\\"Stroll + through beautiful tropical plants.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to hotel and relax by the pool\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Enjoy + the sunset views.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Tides\\\",\\\"location\\\":\\\"Holetown\\\",\\\"notes\\\":\\\"Fine + dining with a local twist.\\\"}],\\\"meals\\\":[\\\"Breakfast at The Bajan + Blue\\\",\\\"Lunch at The Cliff\\\",\\\"Dinner at The Tides\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"BVSE4lyy6Ng=\",\"parentSpanId\":\"QAlZHx6RuLM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042082648743000\",\"endTimeUnixNano\":\"1763042123074678000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Malta.\\n\\nTrip + Details:\\n- Destination: Malta\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: history, culture, relaxation\\n- Weather: Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\n- Destination Info: Malta is an island country + in Southern Europe, located in the Mediterranean Sea. The country's capital, + Valletta, is a historic city rich in culture and architecture. Official languages + are Maltese and English.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the luxury budget level and history, culture, relaxation interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS4aBtO0u5Rq9bvPgdgOeSH0n75R\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2342\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1792\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"550\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Malta: + A Luxurious Journey Through History and Culture\\\",\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC5000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Valletta\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia, Valletta\\\",\\\"notes\\\":\\\"Luxurious + boutique hotel with a historic feel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Try + local specialties.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + Valletta on foot.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Visit + St. John's Co-Cathedral and the Upper Barracca Gardens.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a sunset at the Barracca Lift.\\\",\\\"location\\\":\\\"Upper + Barracca Gardens\\\",\\\"notes\\\":\\\"Stunning views of the Grand Harbour.\\\"},{\\\"time\\\":\\\"7:30 + PM\\\",\\\"activity\\\":\\\"Dinner at The Harbour Club.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Fine + dining with Mediterranean cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Palazzo + Consiglia\\\",\\\"Dinner at The Harbour Club\\\"],\\\"accommodation\\\":\\\"Palazzo + Consiglia, Valletta\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Historical + Wonders of Mdina\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Enjoy + a gourmet breakfast.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Visit + Mdina, the Silent City.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Explore + the narrow streets and historic architecture.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Fontanella Tea Garden.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Famous + for its cakes and views.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + St. Paul's Cathedral and the Mdina Dungeons.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Immerse + in the history of the city.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Return + to Valletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Free + evening to relax.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at La Viletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Authentic + Maltese cuisine.\\\"}],\\\"meals\\\":[\\\"Breakfast at Palazzo Consiglia\\\",\\\"Lunch + at Fontanella Tea Garden\\\",\\\"Dinner at La Viletta\\\"],\\\"accommodation\\\":\\\"Palazzo\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '127530' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/693bde2879b745ff467c20bf9cd2ea7a + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"pApb0LsOSf0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984002122000\",\"endTimeUnixNano\":\"1763042055706374000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Ty846xocHPs=\",\"parentSpanId\":\"pApb0LsOSf0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984003244000\",\"endTimeUnixNano\":\"1763042055706244000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"r4Bxnys8Ajs=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042004652154000\",\"endTimeUnixNano\":\"1763042043092842000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"dvw9i3v4lK0=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042043095808000\",\"endTimeUnixNano\":\"1763042055704401000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2d2455c81978681b90b08ba66c7\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Nature + \\u0026 Adventure in New Zealand: A Week of Wonders', destination='New Zealand', + duration_days=7, total_budget_estimate='$1,500 - $2,000', daily_plans=[DayPlan(day_number=1, + date='2023-10-01', title='Arrival in Auckland', activities=[DayActivity(time='10:00 + AM', activity='Arrive at Auckland Airport', location='Auckland Airport', notes='Collect + rental car from the airport.'), DayActivity(time='12:00 PM', activity='Lunch + at Depot Eatery', location='Auckland', notes='Try local favorites like the + green-lipped mussels.'), DayActivity(time='2:00 PM', activity='Visit Auckland + War Memorial Museum', location='Domain Drive, Auckland', notes='Explore Maori + culture and New Zealand\u2019s natural history.'), DayActivity(time='4:00 + PM', activity='Stroll in Auckland Domain', location='Auckland', notes='Enjoy + the gardens and scenic views.'), DayActivity(time='6:00 PM', activity='Dinner + at The Glass Goose Bar \\u0026 Eatery', location='Auckland', notes='Outdoor + seating available.')], meals=['Lunch at Depot Eatery', 'Dinner at The Glass + Goose Bar \\u0026 Eatery'], accommodation='SkyCity Hotel, Auckland'), DayPlan(day_number=2, + date='2023-10-02', title='Exploring Rotorua', activities=[DayActivity(time='8:00 + AM', activity='Drive to Rotorua', location='Auckland to Rotorua (approx. 3 + hours)', notes='Enjoy scenic views along the way.'), DayActivity(time='11:00 + AM', activity='Visit Te Puia', location='Rotorua', notes='See geysers and + learn about Maori culture.'), DayActivity(time='1:00 PM', activity='Lunch + at Puku Puku Caf\xE9', location='Rotorua', notes='Sample local dishes.'), + DayActivity(time='3:00 PM', activity='Relax in the Polynesian Spa', location='Rotorua', + notes='Enjoy geothermal pools.'), DayActivity(time='6:00 PM', activity='Dinner + at Eat Streat', location='Rotorua', notes='Choose from various food stalls.')], + meals=['Lunch at Puku Puku Caf\xE9', 'Dinner at Eat Streat'], accommodation='Regent + of Rotorua'), DayPlan(day_number=3, date='2023-1\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"### + Nature \\u0026 Adventure in New Zealand: A Week of Wonders\\n\\n#### Destination: + New Zealand\\n- **Duration:** 7 Days\\n- **Budget:** Moderate ($1,500 - $2,000)\\n- + **Interests:** Nature, Adventure, Culture\\n\\n#### Weather Insights\\n- Current + conditions are overcast with a temperature of 7.6\xB0C.\\n- Expect mild temperatures + with some precipitation next week, ranging from 4\xB0C to 22\xB0C.\\n\\n#### + Trip Overview\\n\\n**Day 1: Arrival in Auckland**\\n- **10:00 AM:** Arrive + at Auckland Airport - Collect rental car.\\n- **12:00 PM:** Lunch at Depot + Eatery - Try local green-lipped mussels.\\n- **2:00 PM:** Visit Auckland War + Memorial Museum - Explore Maori culture.\\n- **4:00 PM:** Stroll in Auckland + Domain - Enjoy gardens and views.\\n- **6:00 PM:** Dinner at The Glass Goose + Bar \\u0026 Eatery.\\n- **Accommodation:** SkyCity Hotel, Auckland\\n\\n**Day + 2: Exploring Rotorua**\\n- **8:00 AM:** Drive to Rotorua (3 hours).\\n- **11:00 + AM:** Visit Te Puia - See geysers and Maori culture.\\n- **1:00 PM:** Lunch + at Puku Puku Caf\xE9 - Sample local dishes.\\n- **3:00 PM:** Relax in Polynesian + Spa - Enjoy geothermal pools.\\n- **6:00 PM:** Dinner at Eat Streat.\\n- **Accommodation:** + Regent of Rotorua\\n\\n**Day 3: Adventure in Taupo**\\n- **8:00 AM:** Drive + to Taupo (1 hour).\\n- **10:00 AM:** Visit Huka Falls.\\n- **12:00 PM:** Lunch + at The Boat Shed Caf\xE9.\\n- **2:00 PM:** Skydiving or Jet Boating - Book + in advance.\\n- **5:00 PM:** Relax at Taupo Lake Front.\\n- **Accommodation:** + Millennium Hotel Taupo\\n\\n**Day 4: Tongariro National Park**\\n- **7:00 + AM:** Drive to Tongariro (1 hour).\\n- **8:30 AM:** Begin Tongariro Alpine + Crossing - Full-day hike.\\n- **12:00 PM:** Lunch on the trail - Pack a picnic.\\n- + **4:00 PM:** Complete hike - Stunning views.\\n- **6:00 PM:** Dinner at a + local lodge.\\n- **Accommodation:** Chateau Tongariro Hotel\\n\\n**Day 5: + Wellington Culture Day**\\n- **8:00 AM:** Drive to Wellington (4 hours).\\n- + **12:00 PM:** Lunch at Fidel's Caf\xE9.\\n- **2:00 PM:** Visit Te Papa Tongarewa + Museum - Free entry.\\n- **4:00 PM:** Walk along Wellington Waterfront.\\n- + **6:00 PM:** Dinner at Ortega Fish Shack.\\n- **A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4339\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"846\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5185\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"IS6vpvXSyWc=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984005653000\",\"endTimeUnixNano\":\"1763041985613511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"936\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"959\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"brUFs0ciw1M=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041985613918000\",\"endTimeUnixNano\":\"1763041987102501000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Irx+5vAh2RA=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041987103912000\",\"endTimeUnixNano\":\"1763041990567857000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"801\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8D1wUHRUnJY=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568009000\",\"endTimeUnixNano\":\"1763041993540330000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Z0YMsVUAJiE=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568056000\",\"endTimeUnixNano\":\"1763041993540426000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"YOs61ryvpF4=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041993541968000\",\"endTimeUnixNano\":\"1763041995719255000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"876\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"84\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"960\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"4JCF5eBk2tQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719607000\",\"endTimeUnixNano\":\"1763041998146609000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ixR9+7Z/j1o=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719759000\",\"endTimeUnixNano\":\"1763041998146773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8mbS0moocyI=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041998148255000\",\"endTimeUnixNano\":\"1763041999477499000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2374\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"18\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2392\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ZXf5rcFUcLQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041999478441000\",\"endTimeUnixNano\":\"1763042000768653000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"1qbdTW8b/2E=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042000769229000\",\"endTimeUnixNano\":\"1763042004651429000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2545\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2687\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"NKOz3ltzNm0=\",\"parentSpanId\":\"r4Bxnys8Ajs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042005169975000\",\"endTimeUnixNano\":\"1763042043090298000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: nature, adventure, culture\\n- Weather: Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\n- Destination Info: New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It's known for varied topography and sharp mountain peaks, + including the Southern Alps. The capital city is Wellington, and its most + populous city is Auckland.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and nature, adventure, culture interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS3K2CF576d4YsisW6wGQEds7rmH\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2169\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1573\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"596\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Nature + \\u0026 Adventure in New Zealand: A Week of Wonders\\\",\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500 + - $2,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + rental car from the airport.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Depot Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Try + local favorites like the green-lipped mussels.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Domain + Drive, Auckland\\\",\\\"notes\\\":\\\"Explore Maori culture and New Zealand\u2019s + natural history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Stroll + in Auckland Domain\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Enjoy + the gardens and scenic views.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Outdoor + seating available.\\\"}],\\\"meals\\\":[\\\"Lunch at Depot Eatery\\\",\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + Rotorua\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Rotorua\\\",\\\"location\\\":\\\"Auckland to Rotorua (approx. 3 hours)\\\",\\\"notes\\\":\\\"Enjoy + scenic views along the way.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit + Te Puia\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"See geysers + and learn about Maori culture.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Puku Puku Caf\xE9\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Sample + local dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + in the Polynesian Spa\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Enjoy + geothermal pools.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Eat Streat\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Choose + from various food stalls.\\\"}],\\\"meals\\\":[\\\"Lunch at Puku Puku Caf\xE9\\\",\\\"Dinner + at Eat Streat\\\"],\\\"accommodation\\\":\\\"Regent of Rotorua\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Adventure + in Taupo\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Taupo\\\",\\\"location\\\":\\\"Rotorua to Taupo (approx. 1 hour)\\\",\\\"notes\\\":\\\"Stop + at Huk\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"056VGM+8Nok=\",\"parentSpanId\":\"brUFs0ciw1M=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041986115747000\",\"endTimeUnixNano\":\"1763041987094583000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"kvjaqj4KYrQ=\",\"parentSpanId\":\"8D1wUHRUnJY=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041991671179000\",\"endTimeUnixNano\":\"1763041992478589000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"u+rad2kmPnI=\",\"parentSpanId\":\"Z0YMsVUAJiE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041992480116000\",\"endTimeUnixNano\":\"1763041993538494000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ETHKBPTcA2s=\",\"parentSpanId\":\"4JCF5eBk2tQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041996225152000\",\"endTimeUnixNano\":\"1763041997195369000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"jQ6zmabmw2M=\",\"parentSpanId\":\"ixR9+7Z/j1o=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041997198300000\",\"endTimeUnixNano\":\"1763041998144145000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"0YqSiXc6Hig=\",\"parentSpanId\":\"ZXf5rcFUcLQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041999981250000\",\"endTimeUnixNano\":\"1763042000767913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '98254' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/eed63641fc3ffa3ea40a166e2604edd2 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"kDfoXagrNmk=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306563000\",\"endTimeUnixNano\":\"1763041981994302000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"5t6oCNV1x24=\",\"parentSpanId\":\"kDfoXagrNmk=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306752000\",\"endTimeUnixNano\":\"1763041981994217000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"CPDw9H+t3W0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041900556562000\",\"endTimeUnixNano\":\"1763041909681624000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are some great beach destinations for families in the Americas to consider:\\n\\n1. + **Barbados (Caribbean)**\\n - Language: English\\n - Currency: BBD\\n + \ - Known for its beautiful sandy beaches and vibrant culture.\\n\\n2. **Puerto + Rico (Caribbean)**\\n - Languages: English, Spanish\\n - Currency: USD\\n + \ - Offers lovely beaches, lush rainforests, and a rich cultural heritage.\\n\\n3. + **Turks and Caicos Islands (Caribbean)**\\n - Language: English\\n - Currency: + USD\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\n\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\n\\nI'll gather weather + information and details about Barbados and then create your itinerary.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"664\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"221\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"885\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"gjU8x51ljN8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909682975000\",\"endTimeUnixNano\":\"1763041912228857000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"saPJCTZOa8E=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909683354000\",\"endTimeUnixNano\":\"1763041912228748000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"v4pJsgk8eu8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041912233276000\",\"endTimeUnixNano\":\"1763041916478547000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1859\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"37\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1896\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vW7dC7113KM=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041916479365000\",\"endTimeUnixNano\":\"1763041923081358000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"S5LEq3ro4i0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041923083562000\",\"endTimeUnixNano\":\"1763041926952714000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2178\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"127\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2305\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"0revCekYick=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041926953355000\",\"endTimeUnixNano\":\"1763041968277636000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"awXbMZjA1IQ=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041968278645000\",\"endTimeUnixNano\":\"1763041981992200000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e284b4408193b787ece129274ff2\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Beach + Bliss in Barbados: A 7-Day Tropical Escape', destination='Barbados', duration_days=7, + total_budget_estimate='$1,500', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and Beach Day', activities=[DayActivity(time='12:00 PM', activity='Check-in + at hotel', location='Turtle Beach by Elegant Hotels', notes='Enjoy welcome + drinks and settle into your room.'), DayActivity(time='1:30 PM', activity='Lunch + at the hotel restaurant', location='Turtle Beach', notes='Try the grilled + fish with local spices.'), DayActivity(time='3:00 PM', activity='Relax at + Dover Beach', location='Dover Beach', notes='Beach chairs and umbrellas available + for rent.'), DayActivity(time='6:00 PM', activity='Sunset viewing', location='Dover + Beach', notes='Perfect spot for photos.'), DayActivity(time='7:30 PM', activity='Dinner + at The Oistins Fish Fry', location='Oistins', notes='A vibrant atmosphere + with fresh seafood.')], meals=['Lunch at Turtle Beach', 'Dinner at Oistins + Fish Fry'], accommodation='Turtle Beach by Elegant Hotels'), DayPlan(day_number=2, + date='2023-10-02', title='Explore Bridgetown', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at the hotel', location='Turtle Beach', notes='Buffet + style with local and international options.'), DayActivity(time='9:30 AM', + activity='Visit the Barbados Museum \\u0026 Historical Society', location='Bridgetown', + notes=\\\"Learn about the island's history.\\\"), DayActivity(time='12:00 + PM', activity='Lunch at Brown Sugar', location='Bridgetown', notes='Taste + local dishes in an outdoor setting.'), DayActivity(time='2:00 PM', activity='Explore + George Street and local shops', location='Bridgetown', notes='Pick up souvenirs + and local crafts.'), DayActivity(time='4:00 PM', activity='Relax at Pebbles + Beach', location='Pebbles Beach', notes='Enjoy swimming and sunbathing.'), + DayActivity(time='6:00 PM', activity='Dinner at The Cliff', location='St. + James', notes='Reservations recommend\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for your family vacation in Barbados, focusing + on beach activities and cultural experiences:\\n\\n### Trip Title: Beach Bliss + in Barbados: A 7-Day Tropical Escape\\n\\n#### **Day 1: Arrival and Beach + Day**\\n- **12:00 PM:** Check-in at Turtle Beach by Elegant Hotels. Enjoy + welcome drinks and settle in.\\n- **1:30 PM:** Lunch at the hotel restaurant. + Try the grilled fish with local spices.\\n- **3:00 PM:** Relax at Dover Beach. + Beach chairs and umbrellas available.\\n- **6:00 PM:** Enjoy a sunset viewing + at Dover Beach\u2014perfect for photos.\\n- **7:30 PM:** Dinner at The Oistins + Fish Fry. Vibrant atmosphere with fresh seafood.\\n\\n#### **Day 2: Explore + Bridgetown**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** + Visit the Barbados Museum \\u0026 Historical Society. Learn about the island's + history.\\n- **12:00 PM:** Lunch at Brown Sugar. Taste local dishes.\\n- **2:00 + PM:** Explore George Street and local shops for souvenirs.\\n- **4:00 PM:** + Relax at Pebbles Beach. Enjoy swimming and sunbathing.\\n- **6:00 PM:** Dinner + at The Cliff. Stunning ocean views, reservations recommended.\\n\\n#### **Day + 3: Catamaran Adventure**\\n- **7:30 AM:** Breakfast at Turtle Beach.\\n- **9:00 + AM:** Catamaran cruise from Bridgetown. Swim with turtles and snorkel at coral + reefs.\\n- **12:30 PM:** Lunch on board the catamaran.\\n- **3:00 PM:** Return + to the hotel, relax at the beach or pool.\\n- **7:00 PM:** Dinner at The Round + House in Bathsheba. Try local fish dishes.\\n\\n#### **Day 4: Beach Hopping**\\n- + **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** Visit Crane Beach. + Famous for its pink sand.\\n- **12:00 PM:** Lunch at The Crane Beach Resort.\\n- + **2:00 PM:** Head to Bottom Bay Beach. Less crowded and perfect for relaxation.\\n- + **5:00 PM:** Return to hotel.\\n- **7:30 PM:** Dinner at Naru Restaurant and + Lounge. Local and Asian fusion cuisine.\\n\\n#### **Day 5: Island Culture + and Relaxation**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **10:00 AM:** + Visit St. Nicholas Abbey. Tour the plantation and rum distillery.\\n- **1:00 + PM:** Lunch at the A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4121\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"842\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4963\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vSd7s42xrTw=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894311147000\",\"endTimeUnixNano\":\"1763041898739189000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"932\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"22\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"954\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"dkkP9YWRUaI=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041898739699000\",\"endTimeUnixNano\":\"1763041900553722000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"jB510DMs6/8=\",\"parentSpanId\":\"saPJCTZOa8E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910186602000\",\"endTimeUnixNano\":\"1763041910919083000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"I4smyApmv2I=\",\"parentSpanId\":\"gjU8x51ljN8=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910919911000\",\"endTimeUnixNano\":\"1763041912227844000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wsif3cTB5R0=\",\"parentSpanId\":\"vW7dC7113KM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041916984585000\",\"endTimeUnixNano\":\"1763041923078888000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"T263X02AHSc=\",\"parentSpanId\":\"dkkP9YWRUaI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041899242488000\",\"endTimeUnixNano\":\"1763041900545636000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wJnvML6OlKo=\",\"parentSpanId\":\"0revCekYick=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041927471141000\",\"endTimeUnixNano\":\"1763041968276800000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: beaches\\n- Weather: Current temperature 27.4\xB0C, mainly clear + conditions. Forecast: mostly warm weather with some rain expected later in + the week.\\n- Destination Info: Barbados is an island country in the Caribbean + located in the Atlantic Ocean. It is part of the Lesser Antilles of the West + Indies and the easternmost island of the Caribbean region. It lies on the + boundary of the South American and Caribbean plates. Its capital and largest + city is Bridgetown.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and beaches interests.\\nEach day should have 3-5 + activities with specific times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS25L4VnHyasIegXuwEirm30SBWf\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2288\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1717\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"571\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Beach + Bliss in Barbados: A 7-Day Tropical Escape\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Beach Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at hotel\\\",\\\"location\\\":\\\"Turtle Beach by Elegant Hotels\\\",\\\"notes\\\":\\\"Enjoy + welcome drinks and settle into your room.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Try + the grilled fish with local spices.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at Dover Beach\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Beach + chairs and umbrellas available for rent.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Sunset + viewing\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Perfect + spot for photos.\\\"},{\\\"time\\\":\\\"7:30 PM\\\",\\\"activity\\\":\\\"Dinner + at The Oistins Fish Fry\\\",\\\"location\\\":\\\"Oistins\\\",\\\"notes\\\":\\\"A + vibrant atmosphere with fresh seafood.\\\"}],\\\"meals\\\":[\\\"Lunch at Turtle + Beach\\\",\\\"Dinner at Oistins Fish Fry\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Explore + Bridgetown\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Buffet + style with local and international options.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + the Barbados Museum \\u0026 Historical Society\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Learn + about the island's history.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Brown Sugar\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Taste + local dishes in an outdoor setting.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + George Street and local shops\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Pick + up souvenirs and local crafts.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Relax + at Pebbles Beach\\\",\\\"location\\\":\\\"Pebbles Beach\\\",\\\"notes\\\":\\\"Enjoy + swimming and sunbathing.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Cliff\\\",\\\"location\\\":\\\"St. James\\\",\\\"notes\\\":\\\"Reservations + recommended for stunning ocean views.\\\"}],\\\"meals\\\":[\\\"Breakfast at + Turtle Beach\\\",\\\"Lunch at Brown Sugar\\\",\\\"Dinner at The Cliff\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '79035' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoTraceQL.test_search_with_in_filter.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoTraceQL.test_search_with_in_filter.yaml new file mode 100644 index 0000000..86360a8 --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoTraceQL.test_search_with_in_filter.yaml @@ -0,0 +1,5285 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B%7D&limit=1000 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}},{"traceID":"b37b4c7727a54482f8c71cb88799c108","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042214208334000","durationMs":74124,"spanSet":{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18},"spanSets":[{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18}],"serviceStats":{"travel-agent-demo2":{"spanCount":18}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"43192","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Vary: + - Accept-Encoding + content-length: + - '6560' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B+%28resource.service.name+%3D+%22travel-agent-demo%22+%7C%7C+resource.service.name+%3D+%22travel-agent-demo2%22%29+%7D&limit=10 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]}],"matched":23},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]}],"matched":23}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]}],"matched":28},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]}],"matched":28}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}},{"traceID":"b37b4c7727a54482f8c71cb88799c108","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042214208334000","durationMs":74124,"spanSet":{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]}],"matched":18},"spanSets":[{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo2"}}]}],"matched":18}],"serviceStats":{"travel-agent-demo2":{"spanCount":18}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000","attributes":[{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"68605","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Vary: + - Accept-Encoding + content-length: + - '10022' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/bec9c8df1c3a22a134e4c9c7aa0f0ce3 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"htO31/xjQN0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458122243000\",\"endTimeUnixNano\":\"1763042536895402000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"0hFkYEm0pAA=\",\"parentSpanId\":\"htO31/xjQN0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458123662000\",\"endTimeUnixNano\":\"1763042536895316000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"FSS1aMtuo4g=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042521888311000\",\"endTimeUnixNano\":\"1763042536893685000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4ab7f848195ada04713bd68e3dc\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Exploring + the Wonders of New Zealand', destination='New Zealand', duration_days=7, total_budget_estimate='$1,500', + daily_plans=[DayPlan(day_number=1, date='2023-10-01', title='Arrival in Auckland', + activities=[DayActivity(time='09:00 AM', activity='Arrive at Auckland Airport', + location='Auckland Airport', notes='Collect your rental car for the week.'), + DayActivity(time='10:00 AM', activity='Check into Accommodation', location='SkyCity + Hotel', notes='Located in the city center, convenient for exploring.'), DayActivity(time='11:30 + AM', activity='Visit Auckland War Memorial Museum', location='Auckland Domain', + notes='Explore New Zealand\u2019s cultural heritage and natural history.'), + DayActivity(time='02:00 PM', activity='Lunch at Tom Tom Bar \\u0026 Eatery', + location='SkyCity', notes='Enjoy a relaxing meal with views of the city.'), + DayActivity(time='03:30 PM', activity='Walk around Viaduct Harbour', location='Viaduct + Harbour', notes='Stroll along the waterfront and enjoy the vibrant atmosphere.'), + DayActivity(time='06:30 PM', activity='Dinner at Depot Eatery', location='Federal + Street, Auckland', notes='Experience local New Zealand cuisine.')], meals=['Lunch + at Tom Tom Bar \\u0026 Eatery', 'Dinner at Depot Eatery'], accommodation='SkyCity + Hotel, Auckland'), DayPlan(day_number=2, date='2023-10-02', title='Exploring + the Bay of Islands', activities=[DayActivity(time='07:00 AM', activity='Drive + to Bay of Islands', location='Bay of Islands', notes='Approx. 3 hours drive, + enjoy scenic views on the way.'), DayActivity(time='10:30 AM', activity='Take + a Bay of Islands Cruise', location='Paihia Wharf', notes='Explore the stunning + islands and spot marine wildlife.'), DayActivity(time='01:00 PM', activity='Lunch + at The Gables Restaurant', location='Russell', notes='Try fresh seafood and + local dishes.'), DayActivity(time='03:00 PM', activity='Visit Waitangi Treaty + Grounds', location='Waitangi', notes=\\\"Learn about New Zealand's history + an\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for a romantic cultural vacation in New Zealand, + tailored to your interests:\\n\\n### Exploring the Wonders of New Zealand\\n\\n#### + **Day 1: Arrival in Auckland**\\n- **Morning**\\n - Arrive at Auckland Airport\\n + \ - Check into SkyCity Hotel, centrally located for easy exploration.\\n- + **Afternoon**\\n - Visit Auckland War Memorial Museum: Delve into New Zealand\u2019s + cultural heritage.\\n - Lunch at Tom Tom Bar \\u0026 Eatery: Enjoy city views.\\n- + **Evening**\\n - Walk around Viaduct Harbour: Vibrant waterfront stroll.\\n + \ - Dinner at Depot Eatery: Experience local cuisine.\\n\\n#### **Day 2: Exploring + the Bay of Islands**\\n- **Morning**\\n - Drive to Bay of Islands: Scenic + 3-hour journey.\\n - Take a Bay of Islands Cruise: Explore islands and marine + wildlife.\\n- **Afternoon**\\n - Lunch at The Gables Restaurant: Fresh local + seafood.\\n - Visit Waitangi Treaty Grounds: Learn about New Zealand's history.\\n- + **Evening**\\n - Return to Auckland.\\n - Dinner at The Glasshouse.\\n\\n#### + **Day 3: Wellington - The Capital**\\n- **Morning**\\n - Drive to Wellington: + Enjoy the scenic route.\\n- **Afternoon**\\n - Lunch at The Boatshed Cafe.\\n + \ - Visit Te Papa Tongarewa (Museum of New Zealand): Explore national history.\\n- + **Evening**\\n - Cable Car Ride to Kelburn: City views.\\n - Dinner at Logan + Brown: Fine dining.\\n\\n#### **Day 4: Nature and Culture in Wellington**\\n- + **Morning**\\n - Wellington Botanic Garden: Peaceful morning walk.\\n - + Explore Zealandia Ecosanctuary: Discover unique wildlife.\\n- **Afternoon**\\n + \ - Lunch at The Ramen Shop.\\n - Visit the National Portrait Gallery.\\n- + **Evening**\\n - Dinner at The Old Bailey.\\n\\n#### **Day 5: Travel to Queenstown**\\n- + **Early Morning**\\n - Fly from Wellington to Queenstown.\\n- **Morning**\\n + \ - Check into Center City Apartments.\\n - Skyline Gondola Ride: Panoramic + views.\\n- **Afternoon**\\n - Lunch at Stratosfare Restaurant: Mountain views.\\n + \ - Explore Queenstown Gardens.\\n- **Evening**\\n - Jet Boating on Lake + Wakatipu.\\n - Dinner at Fergburger.\\n\\n#### **Day 6: Adventure in Queenstown**\\n- + **Morning**\\n - \"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4669\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"694\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5363\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]}]},{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"SZQWdqnT86M=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042458125576000\",\"endTimeUnixNano\":\"1763042460061974000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"933\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"956\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"LhJKSMoSSOA=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042460062781000\",\"endTimeUnixNano\":\"1763042461638134000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"j4A8EPQuGCg=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042461639066000\",\"endTimeUnixNano\":\"1763042463839211000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"800\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"850\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ULgV+UrP/qI=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463839867000\",\"endTimeUnixNano\":\"1763042466936364000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"rU40hFuwoTM=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042463840073000\",\"endTimeUnixNano\":\"1763042466936520000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"t17Kam4h9+E=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466938646000\",\"endTimeUnixNano\":\"1763042470405151000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.completion.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.3.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"437\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"116\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"553\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"7g4u8KYJLAU=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406246000\",\"endTimeUnixNano\":\"1763042474022207000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"yCwOkiG7rZ4=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406582000\",\"endTimeUnixNano\":\"1763042474022257000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"suvbAlwFQxE=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470406864000\",\"endTimeUnixNano\":\"1763042474022284000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"kK2HJo7iF1s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042470407130000\",\"endTimeUnixNano\":\"1763042474022309000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"hqoFE9rpZHw=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042474023255000\",\"endTimeUnixNano\":\"1763042479037529000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Oceania for couples. I'm interested in culture.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49bdb408195801283190ba0684f\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_j4TpJGiAeF4EhkzAeVKC8efn\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f27408195bf1dbd7b3a8cd72a\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e49f5cd0819585573cbd20fd175d\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_wYV7bVWXng9unVKLcwMJBEna\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_j4jjulUzDq4cyTlGpbB8U4ym\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a570e48195b096d4b63a54e68f\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a5caf08195bd541f1b8c35d9a1\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a62290819587fb749b6254ff70\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0262619e428a9a9c006915e4a647d881958680951a0dda16aa\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.5, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_1lQHPX5ZrBW7vyt8t9KNLUFo\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.0, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_JKqYM00xvcWLxcdjSwGHNnIj\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_I1d1vSG9WAM9VGM3JNtjTuC6\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_KWt6FKMM1YFpkLW7v6fk1SAm\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"culture, + nature\\\",\\\"weather_info\\\":\\\"Current temperature is 7.5\xB0C and overcast. + Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected on + certain days.\\\",\\\"destination_details\\\":\\\"New Zealand is an island + country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_MqWzYh4euuQCt6T0GoWg80v0\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2709\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"3q+1aP5st6s=\",\"parentSpanId\":\"0hFkYEm0pAA=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042479037941000\",\"endTimeUnixNano\":\"1763042521886451000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xp8+s75qaoQ=\",\"parentSpanId\":\"LhJKSMoSSOA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042460566475000\",\"endTimeUnixNano\":\"1763042461631027000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"xTNGMbJ8o4w=\",\"parentSpanId\":\"ULgV+UrP/qI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042464944178000\",\"endTimeUnixNano\":\"1763042466058265000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"cp8E6e04/1g=\",\"parentSpanId\":\"rU40hFuwoTM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042466061655000\",\"endTimeUnixNano\":\"1763042466934165000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"vHsnrxC0dGw=\",\"parentSpanId\":\"7g4u8KYJLAU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042470916507000\",\"endTimeUnixNano\":\"1763042471857859000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"wieBZmgqMfE=\",\"parentSpanId\":\"yCwOkiG7rZ4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042471863066000\",\"endTimeUnixNano\":\"1763042472795187000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"KvPdWQGWzrM=\",\"parentSpanId\":\"suvbAlwFQxE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042472796856000\",\"endTimeUnixNano\":\"1763042473492982000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"YDcPBs0N6BQ=\",\"parentSpanId\":\"kK2HJo7iF1s=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042473499558000\",\"endTimeUnixNano\":\"1763042474021224000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Australia\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"vsnI3xw6IqE05MnHqg8M4w==\",\"spanId\":\"ZxRbtS6dkJI=\",\"parentSpanId\":\"3q+1aP5st6s=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042479555737000\",\"endTimeUnixNano\":\"1763042521884511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: culture, nature\\n- Weather: Current temperature is 7.5\xB0C and + overcast. Forecast: Temp ranges from 11\xB0C to 22.3\xB0C with some rain expected + on certain days.\\n- Destination Info: New Zealand is an island country in + the southwestern Pacific Ocean. It consists of two main landmasses\u2014the + North Island and the South Island \u2014and over 600 smaller islands. It is + noted for its varied topography and sharp mountain peaks, including the Southern + Alps. The capital city is Wellington, and its most populous city is Auckland.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the moderate budget level and culture, + nature interests.\\nEach day should have 3-5 activities with specific times, + locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbSAyeprdNroIr4yr884B5SquCIU0\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2320\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1726\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"594\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Exploring + the Wonders of New Zealand\\\",\\\"destination\\\":\\\"New Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + your rental car for the week.\\\"},{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into Accommodation\\\",\\\"location\\\":\\\"SkyCity Hotel\\\",\\\"notes\\\":\\\"Located + in the city center, convenient for exploring.\\\"},{\\\"time\\\":\\\"11:30 + AM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Auckland + Domain\\\",\\\"notes\\\":\\\"Explore New Zealand\u2019s cultural heritage + and natural history.\\\"},{\\\"time\\\":\\\"02:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"SkyCity\\\",\\\"notes\\\":\\\"Enjoy + a relaxing meal with views of the city.\\\"},{\\\"time\\\":\\\"03:30 PM\\\",\\\"activity\\\":\\\"Walk + around Viaduct Harbour\\\",\\\"location\\\":\\\"Viaduct Harbour\\\",\\\"notes\\\":\\\"Stroll + along the waterfront and enjoy the vibrant atmosphere.\\\"},{\\\"time\\\":\\\"06:30 + PM\\\",\\\"activity\\\":\\\"Dinner at Depot Eatery\\\",\\\"location\\\":\\\"Federal + Street, Auckland\\\",\\\"notes\\\":\\\"Experience local New Zealand cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch + at Tom Tom Bar \\u0026 Eatery\\\",\\\"Dinner at Depot Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + the Bay of Islands\\\",\\\"activities\\\":[{\\\"time\\\":\\\"07:00 AM\\\",\\\"activity\\\":\\\"Drive + to Bay of Islands\\\",\\\"location\\\":\\\"Bay of Islands\\\",\\\"notes\\\":\\\"Approx. + 3 hours drive, enjoy scenic views on the way.\\\"},{\\\"time\\\":\\\"10:30 + AM\\\",\\\"activity\\\":\\\"Take a Bay of Islands Cruise\\\",\\\"location\\\":\\\"Paihia + Wharf\\\",\\\"notes\\\":\\\"Explore the stunning islands and spot marine wildlife.\\\"},{\\\"time\\\":\\\"01:00 + PM\\\",\\\"activity\\\":\\\"Lunch at The Gables Restaurant\\\",\\\"location\\\":\\\"Russell\\\",\\\"notes\\\":\\\"Try + fresh seafood and local dishes.\\\"},{\\\"time\\\":\\\"03:00 PM\\\",\\\"activity\\\":\\\"Visit + Waitangi Treaty Grounds\\\",\\\"location\\\":\\\"Waitangi\\\",\\\"notes\\\":\\\"Learn + about New Zealand's history and culture.\\\"},{\\\"time\\\":\\\"05:30 PM\\\",\\\"activity\\\":\\\"Return + to Auckland\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Relax + in the car or stop for coffee on the way.\\\"},{\\\"time\\\":\\\"07:3\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '89149' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/6ce0a0129015a826c7f54b78275cfe37 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"QM3dFI3l52g=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290335056000\",\"endTimeUnixNano\":\"1763042456116415000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"3iOop76o3Sw=\",\"parentSpanId\":\"QM3dFI3l52g=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290336958000\",\"endTimeUnixNano\":\"1763042456116320000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"BGNWa2Lx+H4=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042290337931000\",\"endTimeUnixNano\":\"1763042291996182000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"58\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"523\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bpkI8o2juJI=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042291997852000\",\"endTimeUnixNano\":\"1763042294883864000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"FWUQD7dWK24=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042291998533000\",\"endTimeUnixNano\":\"1763042294884045000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"JxMUY8xtBSU=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042294885529000\",\"endTimeUnixNano\":\"1763042317534957000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"For + an adventurous trip, I've selected two destinations known for thrilling experiences: + **Chile** in South America and **Tajikistan** in Central Asia. Let's explore + these destinations further to plan your exciting itinerary.\\n\\n### Chile\\n- + **Capital**: Santiago\\n- **Language**: Spanish\\n- **Currency**: Chilean + Peso (CLP)\\n- **Time Zone**: UTC-06:00 to UTC-04:00\\n\\n### Tajikistan\\n- + **Capital**: Dushanbe\\n- **Language**: Tajik, Russian\\n- **Currency**: Tajikistani + Somoni (TJS)\\n- **Time Zone**: UTC+05:00\\n\\nI'll gather the weather information + and then craft a detailed itinerary for you.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"945\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"213\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1158\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"OnwfJc+G7eA=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042317535695000\",\"endTimeUnixNano\":\"1763042321467468000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"zVBafqJLSVU=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042317535898000\",\"endTimeUnixNano\":\"1763042321467528000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"t+rxwgGXbbg=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042321470042000\",\"endTimeUnixNano\":\"1763042324279616000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1194\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"92\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1286\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"cOiJesC5V+c=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042324280282000\",\"endTimeUnixNano\":\"1763042326821781000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"VHh495GUkl0=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042324280617000\",\"endTimeUnixNano\":\"1763042326822084000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"QcXOYcnb1as=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042326824312000\",\"endTimeUnixNano\":\"1763042328899504000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1518\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"58\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1576\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"q9X9jhj0kbo=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042328900052000\",\"endTimeUnixNano\":\"1763042332069522000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bKmi3eZoF9E=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042328900188000\",\"endTimeUnixNano\":\"1763042332069569000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"pQWL2XkRjNE=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042332070368000\",\"endTimeUnixNano\":\"1763042337546943000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418af3c8190b5314c9f212bff34\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418cdf8819087ab8a397842e1ba\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Santiago, Chile' info=DestinationInfo(title='Santiago', + summary='Capital and largest city of Chile', extract=\\\"Santiago, also known + as Santiago de Chile, is the capital and largest city of Chile and one of + the largest cities in the Americas. Located in the Chilean Central Valley, + it anchors its namesake Santiago Metropolitan Region representing 40% of Chile's + total population. Most of the city is situated between 500\u2013650\\\\xa0m + (1,640\u20132,133\\\\xa0ft) above sea level.\\\")\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.17.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Dushanbe, Tajikistan' info=DestinationInfo(title='Dushanbe', + summary='Capital and largest city of Tajikistan', extract='Dushanbe is the + capital and largest city of Tajikistan. As of February\\\\xa02023, Dushanbe + had a population of 1,228,400, with this population being largely Tajik. Until + 1929, the city was known in Russian as Dyushambe, and from 1929 to 1961 as + Stalinabad, after Joseph Stalin. Dushanbe is located in the Gissar Valley, + bounded by the Gissar Range in the north and east and the Babatag, Aktau, + Rangontau and Karatau mountains in the south, and has an elevation of 750\u2013930 + m. The city is divided into four districts: Ismail Samani, Avicenna, Ferdowsi, + and Shah Mansur.')\"}},{\"key\":\"gen_ai.prompt.17.tool_call_id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Santiago, + Chile\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 24\xB0C with partly cloudy conditions. Upcoming days will be + mostly clear with temperatures ranging from 26\xB0C to 34\xB0C.\\\",\\\"destination_details\\\":\\\"Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_VD4AdDcXmJyed5FWcjWG7Ikt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\\",\\\"destination_details\\\":\\\"Dushanbe + is the capital and largest city of Tajikistan. It is located in the Gissar + Valley, bounded by mountainous terrains, and has a population of over 1 million + people.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_lid7TRD6rOxaEhIq6ISjqGG2\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1702\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"288\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1990\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"/iqJRoiO3Hs=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042337548317000\",\"endTimeUnixNano\":\"1763042433336198000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"dQSecaXxjXM=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042337548704000\",\"endTimeUnixNano\":\"1763042433336329000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"Gic8k6ZyUjM=\",\"parentSpanId\":\"3iOop76o3Sw=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042433338440000\",\"endTimeUnixNano\":\"1763042456109947000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + need a vacation. I like adventure. Plan something for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f385c88190ac6f00512fd02518\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Asia\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e3f3e05481909267c0f907821b21\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Asia' countries=[CountryInfo(name='Qatar', + capital='Doha', region='Asia', subregion='Western Asia', population=3173024, + currencies=['QAR'], languages=['Arabic'], timezones=['UTC+03:00']), CountryInfo(name='Lebanon', + capital='Beirut', region='Asia', subregion='Western Asia', population=5490000, + currencies=['LBP'], languages=['Arabic', 'French'], timezones=['UTC+02:00']), + CountryInfo(name='Syria', capital='Damascus', region='Asia', subregion='Western + Asia', population=25620000, currencies=['SYP'], languages=['Arabic'], timezones=['UTC+02:00']), + CountryInfo(name='Iraq', capital='Baghdad', region='Asia', subregion='Western + Asia', population=46118793, currencies=['IQD'], languages=['Arabic', 'Aramaic', + 'Sorani'], timezones=['UTC+03:00']), CountryInfo(name='Tajikistan', capital='Dushanbe', + region='Asia', subregion='Central Asia', population=10499000, currencies=['TJS'], + languages=['Russian', 'Tajik'], timezones=['UTC+05:00']), CountryInfo(name='Brunei', + capital='Bandar Seri Begawan', region='Asia', subregion='South-Eastern Asia', + population=455500, currencies=['BND', 'SGD'], languages=['Malay'], timezones=['UTC+08:00']), + CountryInfo(name='Oman', capital='Muscat', region='Asia', subregion='Western + Asia', population=5343630, currencies=['OMR'], languages=['Arabic'], timezones=['UTC+04:00']), + CountryInfo(name='Armenia', capital='Yerevan', region='Asia', subregion='Western + Asia', population=3076200, currencies=['AMD'], languages=['Armenian'], timezones=['UTC+04:00']), + CountryInfo(name='Azerbaijan', capital='Baku', region='Asia', subregion='Western + Asia', population=10241722, currencies=['AZN'], languages=['Azerbaijani'], + timezones=['UTC+04:00']), CountryInfo(name='Palestine', capital='Ramallah, + Jerusalem', region='Asia', subregion='Western Asia', population=5483450, currencies=['EGP', + 'ILS', 'JOD'], languages=['Arabic'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_V3xyU8BS5rSnlV2RngKDlWUT\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_Bax6zfTrPBwtjGswzf6EWuMK\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"For an adventurous trip, I've selected two destinations + known for thrilling experiences: **Chile** in South America and **Tajikistan** + in Central Asia. Let's explore these destinations further to plan your exciting + itinerary.\\\\n\\\\n### Chile\\\\n- **Capital**: Santiago\\\\n- **Language**: + Spanish\\\\n- **Currency**: Chilean Peso (CLP)\\\\n- **Time Zone**: UTC-06:00 + to UTC-04:00\\\\n\\\\n### Tajikistan\\\\n- **Capital**: Dushanbe\\\\n- **Language**: + Tajik, Russian\\\\n- **Currency**: Tajikistani Somoni (TJS)\\\\n- **Time Zone**: + UTC+05:00\\\\n\\\\nI'll gather the weather information and then craft a detailed + itinerary for you.\\\", \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": + []}]\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d11148190ae650f5f290850bc\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e40d51ec81909e35f146c5f835c8\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Santiago, Chile' coordinates=LocationCoordinates(location_name='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, country='Chile', display_name='Santiago, + Provincia de Santiago, Regi\xF3n Metropolitana de Santiago, 8320000, Chile')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_zhaOaWCDOhrhJ3lBhWpY3NeW\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Dushanbe, Tajikistan' coordinates=LocationCoordinates(location_name='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, country='\u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D', + display_name='\u0414\u0443\u0448\u0430\u043D\u0431\u0435, 734000, \u0422\u043E\u04B7\u0438\u043A\u0438\u0441\u0442\u043E\u043D')\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_jOtIb6K9IKtYz0N4hRuRZP5d\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e413513c81908db8137138f6364c\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Santiago, + Chile\\\",\\\"latitude\\\":-33.4377756,\\\"longitude\\\":-70.6504502}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e4139924819084371513317dcbed\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"latitude\\\":38.5856814,\\\"longitude\\\":68.760331}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Santiago, Chile' forecast=WeatherForecast(location='Santiago, + Chile', latitude=-33.4377756, longitude=-70.6504502, current_temperature=24.0, + current_conditions='Partly cloudy', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=31.1, temp_min=12.0, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=28.8, temp_min=12.1, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=27.7, temp_min=10.6, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=29.3, temp_min=13.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=34.0, temp_min=14.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=27.4, temp_min=13.5, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=26.0, temp_min=12.3, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_KyJtGXIKYTRO7ORXGVO9gmlq\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.13.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Dushanbe, Tajikistan' forecast=WeatherForecast(location='Dushanbe, + Tajikistan', latitude=38.5856814, longitude=68.760331, current_temperature=15.3, + current_conditions='Clear sky', forecast_days=[DailyForecast(date='2025-11-13', + temp_max=19.9, temp_min=4.7, precipitation=0.0), DailyForecast(date='2025-11-14', + temp_max=19.9, temp_min=5.3, precipitation=0.0), DailyForecast(date='2025-11-15', + temp_max=21.0, temp_min=4.9, precipitation=0.0), DailyForecast(date='2025-11-16', + temp_max=21.0, temp_min=7.1, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=22.5, temp_min=7.4, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=23.7, temp_min=6.1, precipitation=0.0), DailyForecast(date='2025-11-19', + temp_max=20.3, temp_min=6.9, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.13.tool_call_id\",\"value\":{\"stringValue\":\"call_JHXrO7sEsQNs0YZJh4waLtEJ\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418af3c8190b5314c9f212bff34\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Santiago, + Chile\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e418cdf8819087ab8a397842e1ba\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.15.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Dushanbe, + Tajikistan\\\"}\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Santiago, Chile' info=DestinationInfo(title='Santiago', + summary='Capital and largest city of Chile', extract=\\\"Santiago, also known + as Santiago de Chile, is the capital and largest city of Chile and one of + the largest cities in the Americas. Located in the Chilean Central Valley, + it anchors its namesake Santiago Metropolitan Region representing 40% of Chile's + total population. Most of the city is situated between 500\u2013650\\\\xa0m + (1,640\u20132,133\\\\xa0ft) above sea level.\\\")\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_KmBtcUIZaeLJSbGtwpGgkwAt\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.17.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Dushanbe, Tajikistan' info=DestinationInfo(title='Dushanbe', + summary='Capital and largest city of Tajikistan', extract='Dushanbe is the + capital and largest city of Tajikistan. As of February\\\\xa02023, Dushanbe + had a population of 1,228,400, with this population being largely Tajik. Until + 1929, the city was known in Russian as Dyushambe, and from 1929 to 1961 as + Stalinabad, after Joseph Stalin. Dushanbe is located in the Gissar Valley, + bounded by the Gissar Range in the north and east and the Babatag, Aktau, + Rangontau and Karatau mountains in the south, and has an elevation of 750\u2013930 + m. The city is divided into four districts: Ismail Samani, Avicenna, Ferdowsi, + and Shah Mansur.')\"}},{\"key\":\"gen_ai.prompt.17.tool_call_id\",\"value\":{\"stringValue\":\"call_thGVtpSYq8BBxJ5hBuxyYsE3\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e41d98b08190a0e7d230b49ad8ac\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Santiago, + Chile\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 24\xB0C with partly cloudy conditions. Upcoming days will be + mostly clear with temperatures ranging from 26\xB0C to 34\xB0C.\\\",\\\"destination_details\\\":\\\"Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0fb5781dda7d9a4f006915e41fb6448190bca146180572c7a7\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.19.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Dushanbe, + Tajikistan\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"adventure\\\",\\\"weather_info\\\":\\\"Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\\",\\\"destination_details\\\":\\\"Dushanbe + is the capital and largest city of Tajikistan. It is located in the Gissar + Valley, bounded by mountainous terrains, and has a population of over 1 million + people.\\\"}\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Santiago, Chile' itinerary=TravelItinerary(trip_title='Adventurous + Santiago: A 7-Day Exploration', destination='Santiago, Chile', duration_days=7, + total_budget_estimate='$800-$1000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Santiago', activities=[DayActivity(time='10:00 AM', activity='Arrive + at Santiago International Airport', location='Santiago International Airport', + notes='Pick up rental car or take a taxi to the accommodation.'), DayActivity(time='11:30 + AM', activity='Check-in to accommodation', location='Hotel Plaza El Bosque', + notes='Moderate budget, centrally located.'), DayActivity(time='1:00 PM', + activity='Lunch at Liguria', location='Liguria Restaurant', notes='Try the + local seafood dishes.'), DayActivity(time='3:00 PM', activity='Walk around + Plaza de Armas', location='Plaza de Armas', notes='Explore the historic heart + of Santiago.'), DayActivity(time='5:00 PM', activity='Visit Cerro Santa Lucia', + location='Cerro Santa Lucia', notes='Enjoy panoramic views of the city.')], + meals=['Lunch at Liguria', 'Dinner at La Piojera'], accommodation='Hotel Plaza + El Bosque'), DayPlan(day_number=2, date='2023-10-02', title='Cajon del Maipo + Adventure', activities=[DayActivity(time='8:00 AM', activity='Breakfast at + the hotel', location='Hotel Plaza El Bosque', notes='Enjoy a hearty breakfast.'), + DayActivity(time='9:00 AM', activity='Depart for Cajon del Maipo', location='Cajon + del Maipo', notes='A beautiful area for outdoor activities.'), DayActivity(time='10:30 + AM', activity='Hiking in the El Morado National Monument', location='El Morado', + notes='Moderate hike with stunning views.'), DayActivity(time='1:00 PM', activity='Picnic + lunch in nature', location='El Morado', notes='Pack a lunch to enjoy in the + outdoors.'), DayActivity(time='3:00 PM', activity='Visit Embalse El Yeso', + location='Embalse El Yeso', notes='Take photos and enjoy the scenery.'), DayActivity(time='5:00 + PM', activity='Return to Santiago', location='Santiago', notes='R\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_VD4AdDcXmJyed5FWcjWG7Ikt\"}},{\"key\":\"gen_ai.prompt.21.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.21.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Dushanbe, Tajikistan' itinerary=TravelItinerary(trip_title='Adventure + Awaits in Dushanbe', destination='Dushanbe, Tajikistan', duration_days=7, + total_budget_estimate='$700', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and City Exploration', activities=[DayActivity(time='09:00 + AM', activity='Arrive in Dushanbe', location='Dushanbe International Airport', + notes='Transfer to hotel via taxi or arranged pickup.'), DayActivity(time='10:30 + AM', activity='Check-in and freshen up', location='Hotel Atlas Dushanbe', + notes='Moderate hotel with good reviews.'), DayActivity(time='12:00 PM', activity='Lunch + at Restaurant Shodlik', location='Shodlik Restaurant', notes='Try local dishes + like Plov and Shashlik.'), DayActivity(time='01:30 PM', activity='Visit the + National Museum of Tajikistan', location='Dushanbe', notes='Explore Tajik + history and culture.'), DayActivity(time='03:30 PM', activity='Walk around + Rudaki Park', location='Rudaki Park', notes='Enjoy the greenery and relax.'), + DayActivity(time='06:00 PM', activity='Dinner at Restaurant Dushanbe', location='Restaurant + Dushanbe', notes='Known for traditional Tajik cuisine.')], meals=['Lunch at + Shodlik', 'Dinner at Restaurant Dushanbe'], accommodation='Hotel Atlas Dushanbe'), + DayPlan(day_number=2, date='2023-10-02', title='Adventure in the Mountains', + activities=[DayActivity(time='08:00 AM', activity='Breakfast at the hotel', + location='Hotel Atlas Dushanbe', notes='Start your day with a hearty breakfast.'), + DayActivity(time='09:00 AM', activity='Day trip to Fann Mountains', location='Fann + Mountains', notes='Hire a local guide for an adventure hike.'), DayActivity(time='12:30 + PM', activity='Picnic lunch at Alaudin Lakes', location='Alaudin Lakes', notes='Pack + lunch from the hotel.'), DayActivity(time='02:00 PM', activity='Hiking around + the lakes', location='Alaudin Lakes', notes='Enjoy stunning views and take + photos.'), DayActivity(time='05:00 PM', activity='Return to Dushanbe', location='Dushanbe',\"}},{\"key\":\"gen_ai.prompt.21.tool_call_id\",\"value\":{\"stringValue\":\"call_lid7TRD6rOxaEhIq6ISjqGG2\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are two thrilling itineraries tailor-made for your adventurous spirit. You + can choose between Santiago, Chile, known for its vibrant city life and stunning + natural landscapes, or Dushanbe, Tajikistan, offering untouched natural beauty + and rich cultural experiences.\\n\\n### Santiago, Chile: Adventurous Exploration + (7 Days)\\n**Highlights:**\\n- Explore vibrant city life in Santiago, including + cultural sites like Plaza de Armas and Cerro Santa Lucia.\\n- Experience the + thrill of hiking in Cajon del Maipo and El Morado National Monument.\\n- Enjoy + a day trip to colorful Valparaiso.\\n- Taste Chilean wines on a Maipo Valley + wine tour.\\n- Adventure in the Andes Mountains with skiing or hiking.\\n\\n**Estimated + Budget:** $800-$1000\\n\\n**Travel Tips:** Learn some basic Spanish phrases, + and always carry water for outdoor activities.\\n\\n**Packing Suggestions:** + Lightweight clothing, comfortable hiking shoes, and sun protection.\\n\\n### + Dushanbe, Tajikistan: Adventure in Nature (7 Days)\\n**Highlights:**\\n- Discover + Dushanbe's cultural sites, including the National Museum and Rudaki Park.\\n- + Embark on an adventurous day in the Fann Mountains with hiking and exploring + the Alaudin Lakes.\\n- Enjoy rafting and hiking in Varzob Valley.\\n- Trek + in the majestic Pamir Mountains to Lake Sarez.\\n\\n**Estimated Budget:** + $700\\n\\n**Travel Tips:** Learn basic Tajik phrases, carry cash, and respect + local traditions.\\n\\n**Packing Suggestions:** Lightweight, layered clothing, + comfortable hiking shoes, and sunscreen.\\n\\nBoth itineraries promise adventure + and memorable experiences. Let me know if you have any preferences or need + further assistance!\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"7540\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"333\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7873\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"flp6zhR87z8=\",\"parentSpanId\":\"bpkI8o2juJI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042292502514000\",\"endTimeUnixNano\":\"1763042293711707000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Asia\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"8pVEfcKzjl0=\",\"parentSpanId\":\"FWUQD7dWK24=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042293718002000\",\"endTimeUnixNano\":\"1763042294872800000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"r7fWWieyOBU=\",\"parentSpanId\":\"OnwfJc+G7eA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042318640277000\",\"endTimeUnixNano\":\"1763042320464533000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Santiago%2C+Chile\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"HtDo/cYr/Zg=\",\"parentSpanId\":\"zVBafqJLSVU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042320470625000\",\"endTimeUnixNano\":\"1763042321464327000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Dushanbe%2C+Tajikistan\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"Vk5JbW85DaI=\",\"parentSpanId\":\"cOiJesC5V+c=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042324782420000\",\"endTimeUnixNano\":\"1763042325888098000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-33.4377756\\u0026longitude=-70.6504502\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"bvgm7G6N5UQ=\",\"parentSpanId\":\"VHh495GUkl0=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042325892104000\",\"endTimeUnixNano\":\"1763042326819385000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=38.5856814\\u0026longitude=68.760331\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"k4ESLnjIntM=\",\"parentSpanId\":\"q9X9jhj0kbo=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042329402505000\",\"endTimeUnixNano\":\"1763042329932028000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Santiago,%20Chile\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"OPn/NLRb7OU=\",\"parentSpanId\":\"bKmi3eZoF9E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042329932776000\",\"endTimeUnixNano\":\"1763042332067863000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Dushanbe,%20Tajikistan\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"7BjV1KWqCGg=\",\"parentSpanId\":\"/iqJRoiO3Hs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042338068561000\",\"endTimeUnixNano\":\"1763042378358074000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Santiago, + Chile.\\n\\nTrip Details:\\n- Destination: Santiago, Chile\\n- Duration: 7 + days\\n- Budget: moderate\\n- Interests: adventure\\n- Weather: Current temperature + is 24\xB0C with partly cloudy conditions. Upcoming days will be mostly clear + with temperatures ranging from 26\xB0C to 34\xB0C.\\n- Destination Info: Santiago, + also known as Santiago de Chile, is the capital and largest city of Chile + and one of the largest cities in the Americas. Located in the Chilean Central + Valley, it anchors its namesake Santiago Metropolitan Region representing + 40% of Chile's total population. Most of the city is situated between 500\u2013650 + m (1,640\u20132,133 ft) above sea level.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and adventure interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS8gIwmKuNXg8IbIbSADLWloOWdb\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2336\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1737\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"599\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Adventurous + Santiago: A 7-Day Exploration\\\",\\\"destination\\\":\\\"Santiago, Chile\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$800-$1000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Santiago\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Santiago International Airport\\\",\\\"location\\\":\\\"Santiago International + Airport\\\",\\\"notes\\\":\\\"Pick up rental car or take a taxi to the accommodation.\\\"},{\\\"time\\\":\\\"11:30 + AM\\\",\\\"activity\\\":\\\"Check-in to accommodation\\\",\\\"location\\\":\\\"Hotel + Plaza El Bosque\\\",\\\"notes\\\":\\\"Moderate budget, centrally located.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Liguria\\\",\\\"location\\\":\\\"Liguria + Restaurant\\\",\\\"notes\\\":\\\"Try the local seafood dishes.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Walk around Plaza de Armas\\\",\\\"location\\\":\\\"Plaza + de Armas\\\",\\\"notes\\\":\\\"Explore the historic heart of Santiago.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Visit Cerro Santa Lucia\\\",\\\"location\\\":\\\"Cerro + Santa Lucia\\\",\\\"notes\\\":\\\"Enjoy panoramic views of the city.\\\"}],\\\"meals\\\":[\\\"Lunch + at Liguria\\\",\\\"Dinner at La Piojera\\\"],\\\"accommodation\\\":\\\"Hotel + Plaza El Bosque\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Cajon + del Maipo Adventure\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Hotel Plaza El Bosque\\\",\\\"notes\\\":\\\"Enjoy + a hearty breakfast.\\\"},{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Depart + for Cajon del Maipo\\\",\\\"location\\\":\\\"Cajon del Maipo\\\",\\\"notes\\\":\\\"A + beautiful area for outdoor activities.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Hiking + in the El Morado National Monument\\\",\\\"location\\\":\\\"El Morado\\\",\\\"notes\\\":\\\"Moderate + hike with stunning views.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Picnic + lunch in nature\\\",\\\"location\\\":\\\"El Morado\\\",\\\"notes\\\":\\\"Pack + a lunch to enjoy in the outdoors.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + Embalse El Yeso\\\",\\\"location\\\":\\\"Embalse El Yeso\\\",\\\"notes\\\":\\\"Take + photos and enjoy the scenery.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to Santiago\\\",\\\"location\\\":\\\"Santiago\\\",\\\"notes\\\":\\\"Relax + after a day of adventure.\\\"}],\\\"meals\\\":[\\\"Breakfast at the hotel\\\",\\\"Picnic + lunch\\\",\\\"Dinner at Los Buenos Muchachos\\\"],\\\"accommodation\\\":\\\"Hotel + Plaza El Bosque\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"bOCgEpAVqCbH9Ut4J1z+Nw==\",\"spanId\":\"cioloVIWits=\",\"parentSpanId\":\"dQSecaXxjXM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042378370827000\",\"endTimeUnixNano\":\"1763042433334128000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Dushanbe, + Tajikistan.\\n\\nTrip Details:\\n- Destination: Dushanbe, Tajikistan\\n- Duration: + 7 days\\n- Budget: moderate\\n- Interests: adventure\\n- Weather: Current + temperature is 15.3\xB0C with clear skies. Temperatures in the coming week + will range from 19.9\xB0C to 23.7\xB0C with no precipitation expected.\\n- + Destination Info: Dushanbe is the capital and largest city of Tajikistan. + It is located in the Gissar Valley, bounded by mountainous terrains, and has + a population of over 1 million people.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and adventure interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS9Lz3AjDms2dEht5anB36agIYPs\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2499\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1923\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"576\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Adventure + Awaits in Dushanbe\\\",\\\"destination\\\":\\\"Dushanbe, Tajikistan\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$700\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and City Exploration\\\",\\\"activities\\\":[{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Dushanbe\\\",\\\"location\\\":\\\"Dushanbe International Airport\\\",\\\"notes\\\":\\\"Transfer + to hotel via taxi or arranged pickup.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Check-in + and freshen up\\\",\\\"location\\\":\\\"Hotel Atlas Dushanbe\\\",\\\"notes\\\":\\\"Moderate + hotel with good reviews.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Restaurant Shodlik\\\",\\\"location\\\":\\\"Shodlik Restaurant\\\",\\\"notes\\\":\\\"Try + local dishes like Plov and Shashlik.\\\"},{\\\"time\\\":\\\"01:30 PM\\\",\\\"activity\\\":\\\"Visit + the National Museum of Tajikistan\\\",\\\"location\\\":\\\"Dushanbe\\\",\\\"notes\\\":\\\"Explore + Tajik history and culture.\\\"},{\\\"time\\\":\\\"03:30 PM\\\",\\\"activity\\\":\\\"Walk + around Rudaki Park\\\",\\\"location\\\":\\\"Rudaki Park\\\",\\\"notes\\\":\\\"Enjoy + the greenery and relax.\\\"},{\\\"time\\\":\\\"06:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Restaurant Dushanbe\\\",\\\"location\\\":\\\"Restaurant Dushanbe\\\",\\\"notes\\\":\\\"Known + for traditional Tajik cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Shodlik\\\",\\\"Dinner + at Restaurant Dushanbe\\\"],\\\"accommodation\\\":\\\"Hotel Atlas Dushanbe\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Adventure + in the Mountains\\\",\\\"activities\\\":[{\\\"time\\\":\\\"08:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Hotel Atlas Dushanbe\\\",\\\"notes\\\":\\\"Start + your day with a hearty breakfast.\\\"},{\\\"time\\\":\\\"09:00 AM\\\",\\\"activity\\\":\\\"Day + trip to Fann Mountains\\\",\\\"location\\\":\\\"Fann Mountains\\\",\\\"notes\\\":\\\"Hire + a local guide for an adventure hike.\\\"},{\\\"time\\\":\\\"12:30 PM\\\",\\\"activity\\\":\\\"Picnic + lunch at Alaudin Lakes\\\",\\\"location\\\":\\\"Alaudin Lakes\\\",\\\"notes\\\":\\\"Pack + lunch from the hotel.\\\"},{\\\"time\\\":\\\"02:00 PM\\\",\\\"activity\\\":\\\"Hiking + around the lakes\\\",\\\"location\\\":\\\"Alaudin Lakes\\\",\\\"notes\\\":\\\"Enjoy + stunning views and take photos.\\\"},{\\\"time\\\":\\\"05:00 PM\\\",\\\"activity\\\":\\\"Return + to Dushanbe\\\",\\\"location\\\":\\\"Dushanbe\\\",\\\"notes\\\":\\\"Relax + after an adventurous day.\\\"},{\\\"time\\\":\\\"07:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Kebab House\\\",\\\"location\\\":\\\"Kebab House\\\",\\\"notes\\\":\\\"Savor + delicious kebabs and local drinks.\\\"}],\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '133017' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/b37b4c7727a54482f8c71cb88799c108 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo2\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"X6XgDzvu2/o=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214208334000\",\"endTimeUnixNano\":\"1763042288332434000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ykfIkleyfn8=\",\"parentSpanId\":\"X6XgDzvu2/o=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214208605000\",\"endTimeUnixNano\":\"1763042288332353000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"JhAH0yZx3Ik=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042214215610000\",\"endTimeUnixNano\":\"1763042217450079000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"928\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"21\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"949\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"7Pd25D1LOvw=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042217450618000\",\"endTimeUnixNano\":\"1763042219069521000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"Un2+PGYQ9to=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042219072031000\",\"endTimeUnixNano\":\"1763042221139663000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1456\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"19\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1475\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"IbK2qPHFUEU=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042221140625000\",\"endTimeUnixNano\":\"1763042223209324000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"f1ybKu8yoWY=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042223210273000\",\"endTimeUnixNano\":\"1763042226350110000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1544\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"36\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1580\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"Mix/K/BkE/k=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042226350768000\",\"endTimeUnixNano\":\"1763042227769106000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ZIkq2QIEfJc=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042227770300000\",\"endTimeUnixNano\":\"1763042229857312000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1862\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"19\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1881\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"th//dB4A1jI=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042229857982000\",\"endTimeUnixNano\":\"1763042230935832000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"rnS972TaPFE=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042230937025000\",\"endTimeUnixNano\":\"1763042234891211000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b5b6d48194ac4ff233dc086dc6\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Bratislava' info=DestinationInfo(title='Bratislava', + summary='Capital and largest city of Slovakia', extract='Bratislava is the + capital and largest city of the Slovak Republic and the fourth largest of + all cities on the river Danube. Officially, the population of the city is + about 475,000; however, some sources estimate the daily number of people moving + around the city based on mobile phone SIM cards is more than 570,000. Bratislava + is in southwestern Slovakia at the foot of the Little Carpathians, occupying + both banks of the Danube and the left bank of the River Morava. The city is + situated on the border of three countries\u2014Slovakia, Austria, and Hungary\u2014and + is the only national capital to have land borders with two other sovereign + states. Its geographic position places it exceptionally close to the Austrian + capital Vienna, making them the closest pair of capital cities in Europe at + just 50 kilometres (31\\\\xa0mi) apart.')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"cultural + exploration, history, local cuisine\\\",\\\"weather_info\\\":\\\"Current temperature + is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\\",\\\"destination_details\\\":\\\"Bratislava is the + capital and largest city of Slovakia, known for its location by the Danube + River and proximity to Austria and Hungary. It's an important cultural, economic, + and educational center of the region.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_Ka1nJGRoPHD4PU7UUYNV3Gpi\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2097\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"136\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2233\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"4+Xf2IVfm8g=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042234891664000\",\"endTimeUnixNano\":\"1763042274301203000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"tlKdJZeE6c0=\",\"parentSpanId\":\"ykfIkleyfn8=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042274303621000\",\"endTimeUnixNano\":\"1763042288331400000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Find + me a great moderate destination and plan my trip.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3a841b8819497b19dc6e39d6f59\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_zKg0qwP45kGrJ08O7TOgvUTr\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3ac6f0c81948e8d2835dd6fbc81\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Bratislava' coordinates=LocationCoordinates(location_name='Bratislava', + latitude=48.1516988, longitude=17.1093063, country='Slovensko', display_name='Bratislava, + Bratislavsk\xFD kraj, Slovensko')\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_mT8nxoQ1d6lmXzyqpd3ytiv8\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b1ed588194a5947cac65b8ae61\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Bratislava\\\",\\\"latitude\\\":48.1516988,\\\"longitude\\\":17.1093063}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Bratislava' forecast=WeatherForecast(location='Bratislava', + latitude=48.1516988, longitude=17.1093063, current_temperature=5.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-13', temp_max=5.9, temp_min=3.6, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=9.4, temp_min=5.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=11.3, temp_min=8.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=11.4, temp_min=8.2, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=10.3, temp_min=4.7, + precipitation=3.9), DailyForecast(date='2025-11-18', temp_max=6.1, temp_min=1.1, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=3.6, temp_min=0.6, + precipitation=3.3)])\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fiOl6AWtDapVMYG5KYYB8IL9\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b5b6d48194ac4ff233dc086dc6\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Bratislava\\\"}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Bratislava' info=DestinationInfo(title='Bratislava', + summary='Capital and largest city of Slovakia', extract='Bratislava is the + capital and largest city of the Slovak Republic and the fourth largest of + all cities on the river Danube. Officially, the population of the city is + about 475,000; however, some sources estimate the daily number of people moving + around the city based on mobile phone SIM cards is more than 570,000. Bratislava + is in southwestern Slovakia at the foot of the Little Carpathians, occupying + both banks of the Danube and the left bank of the River Morava. The city is + situated on the border of three countries\u2014Slovakia, Austria, and Hungary\u2014and + is the only national capital to have land borders with two other sovereign + states. Its geographic position places it exceptionally close to the Austrian + capital Vienna, making them the closest pair of capital cities in Europe at + just 50 kilometres (31\\\\xa0mi) apart.')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_vCzP1Bn1VAe4BqjDFdSykfbG\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_08e2d55e9e2d0212006915e3b8467481948a834b801a722259\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"cultural + exploration, history, local cuisine\\\",\\\"weather_info\\\":\\\"Current temperature + is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\\",\\\"destination_details\\\":\\\"Bratislava is the + capital and largest city of Slovakia, known for its location by the Danube + River and proximity to Austria and Hungary. It's an important cultural, economic, + and educational center of the region.\\\"}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 5-day itinerary for Bratislava' itinerary=TravelItinerary(trip_title='Cultural + Journey Through Bratislava', destination='Bratislava', duration_days=5, total_budget_estimate='$800', + daily_plans=[DayPlan(day_number=1, date='2023-11-15', title='Arrival and Old + Town Exploration', activities=[DayActivity(time='10:00 AM', activity='Arrive + in Bratislava', location='Bratislava Airport', notes='Take a taxi or shuttle + to the city center.'), DayActivity(time='11:30 AM', activity='Check-in to + accommodation', location='Hotel Danubia', notes='Moderate hotel near the city + center.'), DayActivity(time='12:30 PM', activity='Lunch at Slovak Pub', location='Obchodn\xE1 + 62', notes='Try traditional Slovak dishes like bryndzov\xE9 halu\u0161ky.'), + DayActivity(time='2:00 PM', activity='Stroll through the Old Town', location='Bratislava + Old Town', notes=\\\"Visit St. Michael's Gate, Main Square, and the Old Town + Hall.\\\"), DayActivity(time='4:00 PM', activity='Visit the Bratislava City + Museum', location='Radni\u010Dn\xE1 1', notes=\\\"Learn about the city's history.\\\"), + DayActivity(time='6:00 PM', activity='Dinner at Flagship Restaurant', location='Hlavn\xE9 + n\xE1mestie 4', notes='Enjoy local cuisine with a modern twist.')], meals=['Lunch + at Slovak Pub', 'Dinner at Flagship Restaurant'], accommodation='Hotel Danubia'), + DayPlan(day_number=2, date='2023-11-16', title='Castles and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at hotel', location='Hotel Danubia', notes='Enjoy + a complimentary breakfast.'), DayActivity(time='9:30 AM', activity='Visit + Bratislava Castle', location='Bratislava Castle', notes='Explore the castle + and enjoy views of the Danube.'), DayActivity(time='12:00 PM', activity='Lunch + at Caf\xE9 23', location='Karpatsk\xE1 23', notes='A trendy caf\xE9 with local + dishes.'), DayActivity(time='1:30 PM', activity='Tour the Slovak National + Gallery', location='R\xE1zusovo n\xE1bre\u017Eie 2', notes='Explore Slovak + art and culture.'), DayActivity(time='4:00 PM', activity='Relax at Sad Janka + Kr\xE1\u013Ea park', location='\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_Ka1nJGRoPHD4PU7UUYNV3Gpi\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"I've + planned a 5-day cultural journey to Bratislava, Slovakia for you. Here's your + itinerary:\\n\\n### Cultural Journey Through Bratislava\\n\\n#### **Day 1: + Arrival and Old Town Exploration**\\n- **10:00 AM:** Arrive in Bratislava + - Shuttle or taxi to city center.\\n- **11:30 AM:** Check-in to Hotel Danubia.\\n- + **12:30 PM:** Lunch at Slovak Pub - Try bryndzov\xE9 halu\u0161ky.\\n- **2:00 + PM:** Stroll through the Old Town - Visit St. Michael's Gate.\\n- **4:00 PM:** + Visit the Bratislava City Museum.\\n- **6:00 PM:** Dinner at Flagship Restaurant.\\n\\n#### + **Day 2: Castles and Culture**\\n- **8:00 AM:** Breakfast at Hotel Danubia.\\n- + **9:30 AM:** Visit Bratislava Castle - Great views of the Danube.\\n- **12:00 + PM:** Lunch at Caf\xE9 23.\\n- **1:30 PM:** Tour the Slovak National Gallery.\\n- + **4:00 PM:** Relax at Sad Janka Kr\xE1\u013Ea park.\\n- **7:00 PM:** Dinner + at Modr\xE1 Hviezda.\\n\\n#### **Day 3: Day Trip to Devin Castle**\\n- **8:00 + AM:** Breakfast at Hotel Danubia.\\n- **9:30 AM:** Travel to Devin Castle.\\n- + **10:00 AM:** Explore Devin Castle.\\n- **12:30 PM:** Lunch at Restaurant + Devin.\\n- **2:00 PM:** Return to Bratislava.\\n- **3:00 PM:** Visit the Blue + Church.\\n- **5:00 PM:** Free time in Old Town.\\n- **7:00 PM:** Dinner at + U Zlateho Hruska.\\n\\n#### **Day 4: Art and History**\\n- **8:00 AM:** Breakfast + at Hotel Danubia.\\n- **9:30 AM:** Visit the Museum of Jewish Culture.\\n- + **11:30 AM:** Explore the Bratislava City Gallery.\\n- **1:00 PM:** Lunch + at Urban House.\\n- **3:00 PM:** Visit the Presidential Palace.\\n- **5:00 + PM:** Dinner at Primi.\\n\\n#### **Day 5: Departure and Local Markets**\\n- + **8:00 AM:** Breakfast at Hotel Danubia.\\n- **9:30 AM:** Visit the Old Market + Hall.\\n- **11:00 AM:** Free time for shopping.\\n- **1:00 PM:** Lunch at + the market.\\n- **2:30 PM:** Check-out from hotel.\\n- **3:00 PM:** Transfer + to airport.\\n\\n### Travel Tips\\n- Use public transport for getting around + the city.\\n- Carry an umbrella or rain jacket for rain on November 17 and + 19.\\n- Learn basic Slovak phrases to enhance local interactions.\\n\\n### + Packing Suggestions\\n- Warm clothing layers and comfortable walk\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"3764\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"608\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4372\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"ga2ddWDpwj0=\",\"parentSpanId\":\"7Pd25D1LOvw=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042217954037000\",\"endTimeUnixNano\":\"1763042219061913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"qlkYoPsmsxQ=\",\"parentSpanId\":\"IbK2qPHFUEU=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042222244554000\",\"endTimeUnixNano\":\"1763042223207393000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Bratislava\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"OxRjSied6Tk=\",\"parentSpanId\":\"Mix/K/BkE/k=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042226855593000\",\"endTimeUnixNano\":\"1763042227766872000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=48.1516988\\u0026longitude=17.1093063\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"hMj8FLIUcPo=\",\"parentSpanId\":\"th//dB4A1jI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042230364285000\",\"endTimeUnixNano\":\"1763042230934612000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Bratislava\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"s3tMdyelRIL4xxy4h5nBCA==\",\"spanId\":\"kUQ5JjMwU3s=\",\"parentSpanId\":\"4+Xf2IVfm8g=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042235404005000\",\"endTimeUnixNano\":\"1763042274299868000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 5-day itinerary for Bratislava.\\n\\nTrip + Details:\\n- Destination: Bratislava\\n- Duration: 5 days\\n- Budget: moderate\\n- + Interests: cultural exploration, history, local cuisine\\n- Weather: Current + temperature is 5.6\xB0C with overcast conditions. Forecast includes mild temperatures + ranging from 3.6\xB0C to 11.4\xB0C over the next week, with some rain expected + on November 17 and 19.\\n- Destination Info: Bratislava is the capital and + largest city of Slovakia, known for its location by the Danube River and proximity + to Austria and Hungary. It's an important cultural, economic, and educational + center of the region.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and cultural exploration, history, local cuisine + interests.\\nEach day should have 3-5 activities with specific times, locations, + and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS72PQr8E6ISNBF6AHyK4FMvQhCE\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2032\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1443\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"589\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Cultural + Journey Through Bratislava\\\",\\\"destination\\\":\\\"Bratislava\\\",\\\"duration_days\\\":5,\\\"total_budget_estimate\\\":\\\"$800\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-15\\\",\\\"title\\\":\\\"Arrival + and Old Town Exploration\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Bratislava\\\",\\\"location\\\":\\\"Bratislava Airport\\\",\\\"notes\\\":\\\"Take + a taxi or shuttle to the city center.\\\"},{\\\"time\\\":\\\"11:30 AM\\\",\\\"activity\\\":\\\"Check-in + to accommodation\\\",\\\"location\\\":\\\"Hotel Danubia\\\",\\\"notes\\\":\\\"Moderate + hotel near the city center.\\\"},{\\\"time\\\":\\\"12:30 PM\\\",\\\"activity\\\":\\\"Lunch + at Slovak Pub\\\",\\\"location\\\":\\\"Obchodn\xE1 62\\\",\\\"notes\\\":\\\"Try + traditional Slovak dishes like bryndzov\xE9 halu\u0161ky.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Stroll through the Old Town\\\",\\\"location\\\":\\\"Bratislava + Old Town\\\",\\\"notes\\\":\\\"Visit St. Michael's Gate, Main Square, and + the Old Town Hall.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Visit + the Bratislava City Museum\\\",\\\"location\\\":\\\"Radni\u010Dn\xE1 1\\\",\\\"notes\\\":\\\"Learn + about the city's history.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Flagship Restaurant\\\",\\\"location\\\":\\\"Hlavn\xE9 n\xE1mestie 4\\\",\\\"notes\\\":\\\"Enjoy + local cuisine with a modern twist.\\\"}],\\\"meals\\\":[\\\"Lunch at Slovak + Pub\\\",\\\"Dinner at Flagship Restaurant\\\"],\\\"accommodation\\\":\\\"Hotel + Danubia\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-16\\\",\\\"title\\\":\\\"Castles + and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at hotel\\\",\\\"location\\\":\\\"Hotel Danubia\\\",\\\"notes\\\":\\\"Enjoy + a complimentary breakfast.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Bratislava Castle\\\",\\\"location\\\":\\\"Bratislava Castle\\\",\\\"notes\\\":\\\"Explore + the castle and enjoy views of the Danube.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Caf\xE9 23\\\",\\\"location\\\":\\\"Karpatsk\xE1 23\\\",\\\"notes\\\":\\\"A + trendy caf\xE9 with local dishes.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Tour + the Slovak National Gallery\\\",\\\"location\\\":\\\"R\xE1zusovo n\xE1bre\u017Eie + 2\\\",\\\"notes\\\":\\\"Explore Slovak art and culture.\\\"},{\\\"time\\\":\\\"4:00 + PM\\\",\\\"activity\\\":\\\"Relax at Sad Janka Kr\xE1\u013Ea park\\\",\\\"location\\\":\\\"Sad + Janka Kr\xE1\u013Ea\\\",\\\"notes\\\":\\\"Enjoy nature and views of the Danube.\\\"},{\\\"time\\\":\\\"7:00 + PM\\\",\\\"activity\\\":\\\"Dinner at Modr\xE1 Hviezda\\\",\\\"location\\\":\\\"Hradn\xE9 + n\xE1mestie 2\\\",\\\"notes\\\":\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '86232' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/42ff472d7feb6215bec0cf4e350675b2 + response: + body: + string: '{"batches":[{"resource":{"attributes":[{"key":"telemetry.sdk.language","value":{"stringValue":"python"}},{"key":"telemetry.sdk.name","value":{"stringValue":"opentelemetry"}},{"key":"telemetry.sdk.version","value":{"stringValue":"1.38.0"}},{"key":"service.name","value":{"stringValue":"travel-agent-demo"}}]},"scopeSpans":[{"scope":{"name":"opentelemetry.instrumentation.openai_agents","version":"0.47.5"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"NPzxuz+vo54=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187236891000","endTimeUnixNano":"1763042189460181000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"gen_ai.prompt.0.role","value":{"stringValue":"user"}},{"key":"gen_ai.prompt.0.content","value":{"stringValue":"I + want to visit New York for 7 days with a moderate budget. I love history. + Create me an itinerary."}},{"key":"llm.request.functions.0.name","value":{"stringValue":"search_destinations"}},{"key":"llm.request.functions.0.description","value":{"stringValue":"Search + for travel destinations by region or subregion using REST Countries API."}},{"key":"llm.request.functions.0.parameters","value":{"stringValue":"{\"properties\": + {\"region\": {\"default\": \"\", \"description\": \"Region to search (e.g., + \\\"Europe\\\", \\\"Asia\\\", \\\"Americas\\\")\", \"title\": \"Region\", + \"type\": \"string\"}, \"subregion\": {\"default\": \"\", \"description\": + \"Subregion to search (e.g., \\\"Southern Europe\\\", \\\"Southeast Asia\\\")\", + \"title\": \"Subregion\", \"type\": \"string\"}}, \"title\": \"search_destinations_args\", + \"type\": \"object\", \"additionalProperties\": false, \"required\": [\"region\", + \"subregion\"]}"}},{"key":"llm.request.functions.1.name","value":{"stringValue":"get_location_coordinates"}},{"key":"llm.request.functions.1.description","value":{"stringValue":"Get + coordinates for a location using Nominatim (OpenStreetMap) API."}},{"key":"llm.request.functions.1.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the city or location\", \"title\": + \"Location Name\", \"type\": \"string\"}}, \"required\": [\"location_name\"], + \"title\": \"get_location_coordinates_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.2.name","value":{"stringValue":"get_weather_forecast"}},{"key":"llm.request.functions.2.description","value":{"stringValue":"Get + current weather and 7-day forecast using Open-Meteo API (no API key required)."}},{"key":"llm.request.functions.2.parameters","value":{"stringValue":"{\"properties\": + {\"location_name\": {\"description\": \"Name of the location\", \"title\": + \"Location Name\", \"type\": \"string\"}, \"latitude\": {\"description\": + \"Latitude coordinate\", \"title\": \"Latitude\", \"type\": \"number\"}, \"longitude\": + {\"description\": \"Longitude coordinate\", \"title\": \"Longitude\", \"type\": + \"number\"}}, \"required\": [\"location_name\", \"latitude\", \"longitude\"], + \"title\": \"get_weather_forecast_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.3.name","value":{"stringValue":"get_destination_info"}},{"key":"llm.request.functions.3.description","value":{"stringValue":"Get + information about a destination from Wikipedia API."}},{"key":"llm.request.functions.3.parameters","value":{"stringValue":"{\"properties\": + {\"destination_name\": {\"description\": \"Name of the destination\", \"title\": + \"Destination Name\", \"type\": \"string\"}}, \"required\": [\"destination_name\"], + \"title\": \"get_destination_info_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"llm.request.functions.4.name","value":{"stringValue":"calculate_travel_distance"}},{"key":"llm.request.functions.4.description","value":{"stringValue":"Calculate + distance and estimated flight time between two locations.\nUses Haversine + formula for distance calculation."}},{"key":"llm.request.functions.4.parameters","value":{"stringValue":"{\"properties\": + {\"from_location\": {\"description\": \"Starting location name\", \"title\": + \"From Location\", \"type\": \"string\"}, \"to_location\": {\"description\": + \"Destination location name\", \"title\": \"To Location\", \"type\": \"string\"}, + \"from_lat\": {\"description\": \"Starting latitude\", \"title\": \"From Lat\", + \"type\": \"number\"}, \"from_lon\": {\"description\": \"Starting longitude\", + \"title\": \"From Lon\", \"type\": \"number\"}, \"to_lat\": {\"description\": + \"Destination latitude\", \"title\": \"To Lat\", \"type\": \"number\"}, \"to_lon\": + {\"description\": \"Destination longitude\", \"title\": \"To Lon\", \"type\": + \"number\"}}, \"required\": [\"from_location\", \"to_location\", \"from_lat\", + \"from_lon\", \"to_lat\", \"to_lon\"], \"title\": \"calculate_travel_distance_args\", + \"type\": \"object\", \"additionalProperties\": false}"}},{"key":"llm.request.functions.5.name","value":{"stringValue":"create_itinerary"}},{"key":"llm.request.functions.5.description","value":{"stringValue":"Create + a detailed day-by-day travel itinerary using AI."}},{"key":"llm.request.functions.5.parameters","value":{"stringValue":"{\"properties\": + {\"destination\": {\"description\": \"Main destination for the trip\", \"title\": + \"Destination\", \"type\": \"string\"}, \"duration_days\": {\"description\": + \"Number of days for the trip\", \"title\": \"Duration Days\", \"type\": \"integer\"}, + \"budget\": {\"description\": \"Budget level (budget, moderate, luxury)\", + \"title\": \"Budget\", \"type\": \"string\"}, \"interests\": {\"description\": + \"Traveler interests (e.g., food, history, nature)\", \"title\": \"Interests\", + \"type\": \"string\"}, \"weather_info\": {\"default\": \"\", \"description\": + \"Weather forecast information (optional)\", \"title\": \"Weather Info\", + \"type\": \"string\"}, \"destination_details\": {\"default\": \"\", \"description\": + \"Additional destination details (optional)\", \"title\": \"Destination Details\", + \"type\": \"string\"}}, \"required\": [\"destination\", \"duration_days\", + \"budget\", \"interests\", \"weather_info\", \"destination_details\"], \"title\": + \"create_itinerary_args\", \"type\": \"object\", \"additionalProperties\": + false}"}},{"key":"gen_ai.request.temperature","value":{"doubleValue":1}},{"key":"gen_ai.request.top_p","value":{"doubleValue":1}},{"key":"gen_ai.request.model","value":{"stringValue":"gpt-4o-2024-08-06"}},{"key":"gen_ai.completion.0.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.0.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.0.tool_calls.0.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.0.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\"}"}},{"key":"gen_ai.completion.0.tool_calls.0.id","value":{"stringValue":"call_M6Cz1ZtgBBRVhPAKwGhP4HkH"}},{"key":"gen_ai.completion.1.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.1.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.1.tool_calls.0.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.1.tool_calls.0.arguments","value":{"stringValue":"{\"destination_name\":\"New + York\"}"}},{"key":"gen_ai.completion.1.tool_calls.0.id","value":{"stringValue":"call_XjU0qIs2w9toMdl7I78qNPRd"}},{"key":"gen_ai.completion.2.role","value":{"stringValue":"assistant"}},{"key":"gen_ai.completion.2.finish_reason","value":{"stringValue":"tool_calls"}},{"key":"gen_ai.completion.2.tool_calls.0.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.2.tool_calls.0.arguments","value":{"stringValue":"{\"location_name\":\"New + York\",\"latitude\":40.7128,\"longitude\":-74.006}"}},{"key":"gen_ai.completion.2.tool_calls.0.id","value":{"stringValue":"call_vW1iVMpxm4W5VAjz3uvhFwxl"}},{"key":"gen_ai.usage.prompt_tokens","value":{"intValue":"313"}},{"key":"gen_ai.usage.completion_tokens","value":{"intValue":"81"}},{"key":"llm.usage.total_tokens","value":{"intValue":"394"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Jn+55BUIsg8=","parentSpanId":"qUtAVv3MWrg=","name":"openai.response","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042192790536000","endTimeUnixNano":"1763042197342144000","attributes":[{"key":"llm.request.type","value":{"stringValue":"response"}},{"key":"gen_ai.system","value":{"stringValue":"openai"}},{"key":"gen_ai.operation.name","value":{"stringValue":"response"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"qUtAVv3MWrg=","parentSpanId":"i9g02JupVjo=","name":"Travel + Planner Agent.agent","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187234430000","endTimeUnixNano":"1763042197342199000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"agent"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"i9g02JupVjo=","name":"Agent + Workflow","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042187232503000","endTimeUnixNano":"1763042197342213000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"workflow"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.workflow.name","value":{"stringValue":"Agent + Workflow"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"ndtaGw2O47w=","parentSpanId":"qUtAVv3MWrg=","name":"get_destination_info.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461414000","endTimeUnixNano":"1763042192787831000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_destination_info"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"lAvl8cSGCdQ=","parentSpanId":"qUtAVv3MWrg=","name":"get_weather_forecast.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461614000","endTimeUnixNano":"1763042192787979000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_weather_forecast"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"DRPQ4fXYGOk=","parentSpanId":"qUtAVv3MWrg=","name":"get_location_coordinates.tool","kind":"SPAN_KIND_INTERNAL","startTimeUnixNano":"1763042189461045000","endTimeUnixNano":"1763042192788272000","attributes":[{"key":"traceloop.span.kind","value":{"stringValue":"tool"}},{"key":"gen_ai.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.system","value":{"stringValue":"openai_agents"}},{"key":"gen_ai.completion.tool.name","value":{"stringValue":"get_location_coordinates"}},{"key":"gen_ai.completion.tool.type","value":{"stringValue":"FunctionTool"}},{"key":"gen_ai.completion.tool.strict_json_schema","value":{"boolValue":true}},{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}}],"status":{"code":"STATUS_CODE_OK"}}]},{"scope":{"name":"opentelemetry.instrumentation.requests","version":"0.59b0"},"spans":[{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"gvjOX9XKnIQ=","parentSpanId":"ndtaGw2O47w=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042189966888000","endTimeUnixNano":"1763042190649032000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://en.wikipedia.org/api/rest_v1/page/summary/New%20York"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"Vd7J6WeIkI0=","parentSpanId":"lAvl8cSGCdQ=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042190650755000","endTimeUnixNano":"1763042191744238000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://api.open-meteo.com/v1/forecast?latitude=40.7128\u0026longitude=-74.006\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\u0026timezone=auto\u0026forecast_days=7"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}},{"traceId":"Qv9HLX/rYhW+wM9ONQZ1sg==","spanId":"QO7ZImsbB1g=","parentSpanId":"DRPQ4fXYGOk=","name":"GET","kind":"SPAN_KIND_CLIENT","startTimeUnixNano":"1763042191747300000","endTimeUnixNano":"1763042192786263000","attributes":[{"key":"gen_ai.agent.name","value":{"stringValue":"Travel + Planner Agent"}},{"key":"http.method","value":{"stringValue":"GET"}},{"key":"http.url","value":{"stringValue":"https://nominatim.openstreetmap.org/search?q=New+York\u0026format=json\u0026limit=1"}},{"key":"http.status_code","value":{"intValue":"200"}}],"status":{}}]}]}]}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '14143' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/9a8cb895bee63fabb705329a05ced33b + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"VVGqP3Zlh/I=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057714246000\",\"endTimeUnixNano\":\"1763042185226841000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ebIwige/t/I=\",\"parentSpanId\":\"VVGqP3Zlh/I=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057715150000\",\"endTimeUnixNano\":\"1763042185226760000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"XmMF4QV1t5I=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042160420265000\",\"endTimeUnixNano\":\"1763042185224042000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.prompt.17.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31f412c8193854f3d40a67569bb\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.17.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.prompt.18.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3203a048193a1db4cd095de78a1\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.18.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.prompt.19.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.19.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Malta' itinerary=TravelItinerary(trip_title='Malta: + A Luxurious Journey Through History and Culture', destination='Malta', duration_days=7, + total_budget_estimate='\u20AC5000', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Valletta', activities=[DayActivity(time='10:00 AM', activity='Check + into the hotel.', location='Palazzo Consiglia, Valletta', notes='Luxurious + boutique hotel with a historic feel.'), DayActivity(time='12:00 PM', activity='Lunch + at the hotel restaurant.', location='Palazzo Consiglia', notes='Try local + specialties.'), DayActivity(time='2:00 PM', activity='Explore Valletta on + foot.', location='Valletta', notes=\\\"Visit St. John's Co-Cathedral and the + Upper Barracca Gardens.\\\"), DayActivity(time='5:00 PM', activity='Enjoy + a sunset at the Barracca Lift.', location='Upper Barracca Gardens', notes='Stunning + views of the Grand Harbour.'), DayActivity(time='7:30 PM', activity='Dinner + at The Harbour Club.', location='Valletta', notes='Fine dining with Mediterranean + cuisine.')], meals=['Lunch at Palazzo Consiglia', 'Dinner at The Harbour Club'], + accommodation='Palazzo Consiglia, Valletta'), DayPlan(day_number=2, date='2023-10-02', + title='Historical Wonders of Mdina', activities=[DayActivity(time='9:00 AM', + activity='Breakfast at the hotel.', location='Palazzo Consiglia', notes='Enjoy + a gourmet breakfast.'), DayActivity(time='10:30 AM', activity='Visit Mdina, + the Silent City.', location='Mdina', notes='Explore the narrow streets and + historic architecture.'), DayActivity(time='1:00 PM', activity='Lunch at Fontanella + Tea Garden.', location='Mdina', notes='Famous for its cakes and views.'), + DayActivity(time='3:00 PM', activity=\\\"Visit St. Paul's Cathedral and the + Mdina Dungeons.\\\", location='Mdina', notes='Immerse in the history of the + city.'), DayActivity(time='6:00 PM', activity='Return to Valletta.', location='Valletta', + notes='Free evening to relax.'), DayActivity(time='8:00 PM', activity='Dinner + at La Viletta.', location='Valletta', n\"}},{\"key\":\"gen_ai.prompt.19.tool_call_id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.prompt.20.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.20.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Paradise + Found: A Luxurious Escape to Barbados', destination='Barbados', duration_days=7, + total_budget_estimate='$5,000', daily_plans=[DayPlan(day_number=1, date='2023-11-01', + title='Arrival and Beach Relaxation', activities=[DayActivity(time='10:00 + AM', activity='Arrival at Grantley Adams International Airport', location='Bridgetown', + notes='Private transfer to hotel.'), DayActivity(time='12:00 PM', activity='Check-in + at Sandy Lane Hotel', location='Sandy Lane, St. James', notes='Enjoy a welcome + drink upon arrival.'), DayActivity(time='1:00 PM', activity='Lunch at The + Bajan Blue', location='Sandy Lane Hotel', notes='Try the fresh catch of the + day.'), DayActivity(time='3:00 PM', activity='Relax at the beach', location='Sandy + Lane Beach', notes='Enjoy complimentary beach services and cabanas.'), DayActivity(time='7:00 + PM', activity=\\\"Dinner at L'Acajou\\\", location='Sandy Lane Hotel', notes='Reserve + a table for an oceanfront dining experience.')], meals=['Lunch at The Bajan + Blue', \\\"Dinner at L'Acajou\\\"], accommodation='Sandy Lane Hotel'), DayPlan(day_number=2, + date='2023-11-02', title='Exploring the Nature and Culture', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at The Bajan Blue', location='Sandy Lane Hotel', + notes='Buffet breakfast included.'), DayActivity(time='9:30 AM', activity=\\\"Visit + Harrison's Cave\\\", location='Welches, St. Thomas', notes='Guided tram tour + of the limestone caves.'), DayActivity(time='12:00 PM', activity='Lunch at + The Cliff', location='The Cliff, St. James', notes='One of the best views + in Barbados.'), DayActivity(time='2:00 PM', activity='Explore the Andromeda + Botanic Gardens', location='Bathsheba', notes='Stroll through beautiful tropical + plants.'), DayActivity(time='5:00 PM', activity='Return to hotel and relax + by the pool', location='Sandy Lane Hotel', notes='Enjoy the sunset views.'), + DayActivity(time='8:00 PM', activity='Dinner at The Tides', location='Holetown', + notes='Fin\"}},{\"key\":\"gen_ai.prompt.20.tool_call_id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a luxurious winter getaway itinerary for two amazing destinations: Malta and + Barbados. You can choose either for a memorable experience!\\n\\n### Malta: + A Luxurious Journey Through History and Culture\\n\\n#### Overview:\\n- **Duration:** + 7 Days\\n- **Budget:** \u20AC5000\\n- **Interests:** History, culture, relaxation\\n- + **Weather:** Partly cloudy, 14\xB0C to 25\xB0C\\n\\n#### Highlights:\\n- **Explore + Valletta:** Discover historic sites like St. John's Co-Cathedral and the Upper + Barracca Gardens.\\n- **Visit Mdina:** Wander through the narrow streets of + the Silent City.\\n- **Cruise the Blue Lagoon:** Relax and swim in crystal-clear + waters on Comino Island.\\n- **Art and Culture in Valletta:** Enjoy museums, + the Grand Master's Palace, and traditional Maltese cuisine.\\n- **Day in Gozo:** + Experience UNESCO sites and enjoy local cuisine in Xlendi Bay.\\n- **Relaxation + and Spa Day:** Indulge in luxury spa treatments and wine tasting.\\n\\n#### + Suggested Activities:\\n- Stroll through the National Museum of Archaeology.\\n- + Enjoy a Michelin-starred dining experience at Noni.\\n- Unwind at the historic + and luxurious Palazzo Consiglia.\\n\\n---\\n\\n### Barbados: Paradise Found\\n\\n#### + Overview:\\n- **Duration:** 7 Days\\n- **Budget:** $5,000\\n- **Interests:** + Beach, nature, relaxation\\n- **Weather:** Mainly clear with occasional rain, + 26\xB0C to 28\xB0C\\n\\n#### Highlights:\\n- **Stay at Sandy Lane:** Experience + luxury at a top-notch hotel.\\n- **Catamaran Cruise:** Snorkel and swim with + turtles.\\n- **Visit Harrison's Cave:** Explore stunning limestone formations.\\n- + **Beach Relaxation:** Enjoy water sports and sunbathing at Sandy Lane Beach.\\n- + **Cultural Sightseeing:** Visit the Barbados Museum and Andromeda Botanic + Gardens.\\n- **Island Adventure:** Discover the Animal Flower Cave and Bathsheba + Beach.\\n\\n#### Suggested Activities:\\n- Indulge in a private yoga session + on the beach.\\n- Savor local flavors at dining spots like The Cliff and Oistins + Fish Fry.\\n- Book a spa treatment for ultimate relaxation.\\n\\nChoose either + Malta for its rich history and culture or Barbados for its tropical para\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"6963\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"482\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"7445\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"embCySXGZiM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042057716128000\",\"endTimeUnixNano\":\"1763042059661983000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"465\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"60\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"525\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"mC8CCwLW76g=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663097000\",\"endTimeUnixNano\":\"1763042062451067000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ssDCKShkL44=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042059663477000\",\"endTimeUnixNano\":\"1763042062451172000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fuu6tO+Ndlo=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042062452499000\",\"endTimeUnixNano\":\"1763042064799092000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1003\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1055\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"fvHJdvNTMws=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064799830000\",\"endTimeUnixNano\":\"1763042067739773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"T8dJZDmT4I4=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042064800127000\",\"endTimeUnixNano\":\"1763042067739862000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"v6cWcKHOCjI=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042067741423000\",\"endTimeUnixNano\":\"1763042070448846000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1077\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"86\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1163\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"UEIsxC37pwE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449031000\",\"endTimeUnixNano\":\"1763042072801957000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"THKreibx8ug=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042070449103000\",\"endTimeUnixNano\":\"1763042072802080000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"YBTnmbTN6jE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042072803790000\",\"endTimeUnixNano\":\"1763042075107212000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1391\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"52\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1443\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"SxqLZKfWCmA=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108148000\",\"endTimeUnixNano\":\"1763042076670490000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"5dBBk3l1eiQ=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042075108516000\",\"endTimeUnixNano\":\"1763042076670556000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"cE+1FFJhlnU=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076671577000\",\"endTimeUnixNano\":\"1763042082126494000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Plan + a winter getaway for couples. Surprise me with a good destination.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b12d8819395ab74781f10fd3a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"Southern + Europe\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e30b4dd08193bae2c76101e4af24\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"Caribbean\\\"}\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Vatican + City', capital='Vatican City', region='Europe', subregion='Southern Europe', + population=882, currencies=['EUR'], languages=['Italian', 'Latin'], timezones=['UTC+01:00']), + CountryInfo(name='San Marino', capital='City of San Marino', region='Europe', + subregion='Southern Europe', population=34132, currencies=['EUR'], languages=['Italian'], + timezones=['UTC+01:00']), CountryInfo(name='Cyprus', capital='Nicosia', region='Europe', + subregion='Southern Europe', population=1442614, currencies=['EUR'], languages=['Greek', + 'Turkish'], timezones=['UTC+02:00']), CountryInfo(name='Malta', capital='Valletta', + region='Europe', subregion='Southern Europe', population=574250, currencies=['EUR'], + languages=['English', 'Maltese'], timezones=['UTC+01:00']), CountryInfo(name='Spain', + capital='Madrid', region='Europe', subregion='Southern Europe', population=49315949, + currencies=['EUR'], languages=['Spanish', 'Catalan', 'Basque', 'Galician'], + timezones=['UTC', 'UTC+01:00']), CountryInfo(name='Italy', capital='Rome', + region='Europe', subregion='Southern Europe', population=58927633, currencies=['EUR'], + languages=['Italian', 'Catalan'], timezones=['UTC+01:00']), CountryInfo(name='Andorra', + capital='Andorra la Vella', region='Europe', subregion='Southern Europe', + population=88406, currencies=['EUR'], languages=['Catalan'], timezones=['UTC+01:00']), + CountryInfo(name='Portugal', capital='Lisbon', region='Europe', subregion='Southern + Europe', population=10749635, currencies=['EUR'], languages=['Portuguese'], + timezones=['UTC-01:00', 'UTC']), CountryInfo(name='Greece', capital='Athens', + region='Europe', subregion='Southern Europe', population=10400720, currencies=['EUR'], + languages=['Greek'], timezones=['UTC+02:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.3.tool_call_id\",\"value\":{\"stringValue\":\"call_sdPpx2o9fLpqfZmk0mtZBLFo\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.4.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Dominica', + capital='Roseau', region='Americas', subregion='Caribbean', population=67408, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Barbados', + capital='Bridgetown', region='Americas', subregion='Caribbean', population=267800, + currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Puerto + Rico', capital='San Juan', region='Americas', subregion='Caribbean', population=3203295, + currencies=['USD'], languages=['English', 'Spanish'], timezones=['UTC-04:00']), + CountryInfo(name='Anguilla', capital='The Valley', region='Americas', subregion='Caribbean', + population=16010, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Turks and Caicos Islands', capital='Cockburn Town', region='Americas', + subregion='Caribbean', population=50828, currencies=['USD'], languages=['English'], + timezones=['UTC-04:00']), CountryInfo(name='Saint Kitts and Nevis', capital='Basseterre', + region='Americas', subregion='Caribbean', population=51320, currencies=['XCD'], + languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Saint Barth\xE9lemy', + capital='Gustavia', region='Americas', subregion='Caribbean', population=10562, + currencies=['EUR'], languages=['French'], timezones=['UTC-04:00']), CountryInfo(name='Saint + Vincent and the Grenadines', capital='Kingstown', region='Americas', subregion='Caribbean', + population=110872, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Cura\xE7ao', capital='Willemstad', region='Americas', subregion='Caribbean', + population=156115, currencies=['ANG'], languages=['English', 'Dutch', 'Papiamento'], + timezones=['UTC-04:00']), CountryInfo(name='Martinique', capital='Fort-de-France', + region='Americas', subregion='Caribbean', population=349925, currencies=['EUR'], + languages=['French'], timezones=['UTC-04:00'])] count=10\"}},{\"key\":\"gen_ai.prompt.4.tool_call_id\",\"value\":{\"stringValue\":\"call_j5QtsIEJqPsQnwXRxpZxhEMR\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3102c408193b8843a82eb37889c\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31079548193ae0ca90f5ea52f30\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.6.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Malta' coordinates=LocationCoordinates(location_name='Malta', + latitude=35.8885993, longitude=14.4476911, country='Malta', display_name='Malta')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_pNHZkI5SmC3JuYKfRvSACk7h\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.8.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.8.tool_call_id\",\"value\":{\"stringValue\":\"call_IZWBvjPYBpeidqlmGe1Id2Qo\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e315c6bc8193aa3336c7a9995992\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.9.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Malta\\\",\\\"latitude\\\":35.8885993,\\\"longitude\\\":14.4476911}\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e3160e088193acd19adc65dc3425\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Malta' forecast=WeatherForecast(location='Malta', + latitude=35.8885993, longitude=14.4476911, current_temperature=20.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=21.2, temp_min=14.1, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=22.1, temp_min=16.8, + precipitation=0.0), DailyForecast(date='2025-11-15', temp_max=24.1, temp_min=19.0, + precipitation=0.0), DailyForecast(date='2025-11-16', temp_max=24.3, temp_min=19.1, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=25.1, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=24.5, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=22.8, temp_min=19.9, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_6fnMN7ZpHPtIRc5JynUDtScq\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_yIkrP9h26XJDvVK7dGz3aNDk\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31ad7488193abc1a963ce9da222\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Malta\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0edf16fde44de403006915e31af0bc81938a4440ecf49f4ce3\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.14.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.15.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.15.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Malta' info=DestinationInfo(title='Malta', + summary='Island country in Southern Europe', extract=\\\"Malta, officially + the Republic of Malta, is an island country in Southern Europe located in + the Mediterranean Sea, between Sicily and North Africa. It consists of an + archipelago 80\\\\xa0km (50\\\\xa0mi) south of Italy, 284\\\\xa0km (176\\\\xa0mi) + east of Tunisia, and 333\\\\xa0km (207\\\\xa0mi) north of Libya. The two official + languages are Maltese and English. The country's capital is Valletta, which + is the smallest capital city in the European Union (EU) by both area and population.\\\")\"}},{\"key\":\"gen_ai.prompt.15.tool_call_id\",\"value\":{\"stringValue\":\"call_xJouuCRxptnpXigdf6U0Ng0s\"}},{\"key\":\"gen_ai.prompt.16.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.16.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.16.tool_call_id\",\"value\":{\"stringValue\":\"call_qUjiOXYwInVeeONPH5V6TaiS\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"history, + culture, relaxation\\\",\\\"weather_info\\\":\\\"Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\\",\\\"destination_details\\\":\\\"Malta + is an island country in Southern Europe, located in the Mediterranean Sea. + The country's capital, Valletta, is a historic city rich in culture and architecture. + Official languages are Maltese and English.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wnZLIlom0uKnjbbokTqsb5lI\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"beach, + nature, relaxation\\\",\\\"weather_info\\\":\\\"Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_wmmwg2C7A6EIOZLAbgb8TsMl\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1535\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"208\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1743\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"QAlZHx6RuLM=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082127730000\",\"endTimeUnixNano\":\"1763042160416987000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"th2IYCV4hsE=\",\"parentSpanId\":\"ebIwige/t/I=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042082128207000\",\"endTimeUnixNano\":\"1763042160417136000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HDPGse/8x4o=\",\"parentSpanId\":\"mC8CCwLW76g=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042060166394000\",\"endTimeUnixNano\":\"1763042061283475000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Europe\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"IA+JMvfXJl8=\",\"parentSpanId\":\"ssDCKShkL44=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042061306153000\",\"endTimeUnixNano\":\"1763042062439682000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"PzmXYx0yNzo=\",\"parentSpanId\":\"fvHJdvNTMws=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042065903652000\",\"endTimeUnixNano\":\"1763042066847763000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Malta\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"ON9RLT3j6a4=\",\"parentSpanId\":\"T8dJZDmT4I4=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042066849545000\",\"endTimeUnixNano\":\"1763042067737708000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"M2Q2FV2cXIU=\",\"parentSpanId\":\"UEIsxC37pwE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042070951475000\",\"endTimeUnixNano\":\"1763042071877256000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=35.8885993\\u0026longitude=14.4476911\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Ze33HN9DUpc=\",\"parentSpanId\":\"THKreibx8ug=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042071879722000\",\"endTimeUnixNano\":\"1763042072800019000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"HKpm5tCLJzU=\",\"parentSpanId\":\"SxqLZKfWCmA=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042075611055000\",\"endTimeUnixNano\":\"1763042076145487000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Malta\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"lAzYqhlHfpg=\",\"parentSpanId\":\"5dBBk3l1eiQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042076148467000\",\"endTimeUnixNano\":\"1763042076669422000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"Znd3vlNcirg=\",\"parentSpanId\":\"th2IYCV4hsE=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042123087205000\",\"endTimeUnixNano\":\"1763042160414874000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: beach, nature, relaxation\\n- Weather: Mainly clear with occasional + rain, temperatures ranging from 26\xB0C to 28\xB0C\\n- Destination Info: Barbados + is an island country in the Caribbean, known for its beautiful beaches and + vibrant culture. The capital, Bridgetown, is the largest city.\\n\\nCreate + a comprehensive itinerary that includes:\\n1. A catchy trip title\\n2. Day-by-day + plans with specific activities and timings\\n3. Meal recommendations for each + day\\n4. Accommodation suggestions\\n5. Travel tips specific to this destination\\n6. + Packing suggestions based on the weather and activities\\n\\nMake the itinerary + practical, engaging, and tailored to the luxury budget level and beach, nature, + relaxation interests.\\nEach day should have 3-5 activities with specific + times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS5EtpivASLkttPJzZ83ik15FlLX\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2260\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1719\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"541\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Paradise + Found: A Luxurious Escape to Barbados\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$5,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-11-01\\\",\\\"title\\\":\\\"Arrival + and Beach Relaxation\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrival + at Grantley Adams International Airport\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Private + transfer to hotel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at Sandy Lane Hotel\\\",\\\"location\\\":\\\"Sandy Lane, St. James\\\",\\\"notes\\\":\\\"Enjoy + a welcome drink upon arrival.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Try + the fresh catch of the day.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at the beach\\\",\\\"location\\\":\\\"Sandy Lane Beach\\\",\\\"notes\\\":\\\"Enjoy + complimentary beach services and cabanas.\\\"},{\\\"time\\\":\\\"7:00 PM\\\",\\\"activity\\\":\\\"Dinner + at L'Acajou\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Reserve + a table for an oceanfront dining experience.\\\"}],\\\"meals\\\":[\\\"Lunch + at The Bajan Blue\\\",\\\"Dinner at L'Acajou\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-11-02\\\",\\\"title\\\":\\\"Exploring + the Nature and Culture\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at The Bajan Blue\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Buffet + breakfast included.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Harrison's Cave\\\",\\\"location\\\":\\\"Welches, St. Thomas\\\",\\\"notes\\\":\\\"Guided + tram tour of the limestone caves.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Cliff\\\",\\\"location\\\":\\\"The Cliff, St. James\\\",\\\"notes\\\":\\\"One + of the best views in Barbados.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + the Andromeda Botanic Gardens\\\",\\\"location\\\":\\\"Bathsheba\\\",\\\"notes\\\":\\\"Stroll + through beautiful tropical plants.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + to hotel and relax by the pool\\\",\\\"location\\\":\\\"Sandy Lane Hotel\\\",\\\"notes\\\":\\\"Enjoy + the sunset views.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Tides\\\",\\\"location\\\":\\\"Holetown\\\",\\\"notes\\\":\\\"Fine + dining with a local twist.\\\"}],\\\"meals\\\":[\\\"Breakfast at The Bajan + Blue\\\",\\\"Lunch at The Cliff\\\",\\\"Dinner at The Tides\\\"],\\\"accommodation\\\":\\\"Sandy + Lane Hotel\\\"},{\\\"day_numbe\"}}],\"status\":{}},{\"traceId\":\"moy4lb7mP6u3BTKaBc7TOw==\",\"spanId\":\"BVSE4lyy6Ng=\",\"parentSpanId\":\"QAlZHx6RuLM=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042082648743000\",\"endTimeUnixNano\":\"1763042123074678000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Malta.\\n\\nTrip + Details:\\n- Destination: Malta\\n- Duration: 7 days\\n- Budget: luxury\\n- + Interests: history, culture, relaxation\\n- Weather: Partly cloudy with temperatures + ranging from 14\xB0C to 25\xB0C\\n- Destination Info: Malta is an island country + in Southern Europe, located in the Mediterranean Sea. The country's capital, + Valletta, is a historic city rich in culture and architecture. Official languages + are Maltese and English.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the luxury budget level and history, culture, relaxation interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS4aBtO0u5Rq9bvPgdgOeSH0n75R\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2342\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1792\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"550\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Malta: + A Luxurious Journey Through History and Culture\\\",\\\"destination\\\":\\\"Malta\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC5000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Valletta\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Check + into the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia, Valletta\\\",\\\"notes\\\":\\\"Luxurious + boutique hotel with a historic feel.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Try + local specialties.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + Valletta on foot.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Visit + St. John's Co-Cathedral and the Upper Barracca Gardens.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a sunset at the Barracca Lift.\\\",\\\"location\\\":\\\"Upper + Barracca Gardens\\\",\\\"notes\\\":\\\"Stunning views of the Grand Harbour.\\\"},{\\\"time\\\":\\\"7:30 + PM\\\",\\\"activity\\\":\\\"Dinner at The Harbour Club.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Fine + dining with Mediterranean cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch at Palazzo + Consiglia\\\",\\\"Dinner at The Harbour Club\\\"],\\\"accommodation\\\":\\\"Palazzo + Consiglia, Valletta\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Historical + Wonders of Mdina\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel.\\\",\\\"location\\\":\\\"Palazzo Consiglia\\\",\\\"notes\\\":\\\"Enjoy + a gourmet breakfast.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Visit + Mdina, the Silent City.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Explore + the narrow streets and historic architecture.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Fontanella Tea Garden.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Famous + for its cakes and views.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + St. Paul's Cathedral and the Mdina Dungeons.\\\",\\\"location\\\":\\\"Mdina\\\",\\\"notes\\\":\\\"Immerse + in the history of the city.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Return + to Valletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Free + evening to relax.\\\"},{\\\"time\\\":\\\"8:00 PM\\\",\\\"activity\\\":\\\"Dinner + at La Viletta.\\\",\\\"location\\\":\\\"Valletta\\\",\\\"notes\\\":\\\"Authentic + Maltese cuisine.\\\"}],\\\"meals\\\":[\\\"Breakfast at Palazzo Consiglia\\\",\\\"Lunch + at Fontanella Tea Garden\\\",\\\"Dinner at La Viletta\\\"],\\\"accommodation\\\":\\\"Palazzo\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:46 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '127530' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/693bde2879b745ff467c20bf9cd2ea7a + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"pApb0LsOSf0=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984002122000\",\"endTimeUnixNano\":\"1763042055706374000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Ty846xocHPs=\",\"parentSpanId\":\"pApb0LsOSf0=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984003244000\",\"endTimeUnixNano\":\"1763042055706244000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"r4Bxnys8Ajs=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763042004652154000\",\"endTimeUnixNano\":\"1763042043092842000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"dvw9i3v4lK0=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042043095808000\",\"endTimeUnixNano\":\"1763042055704401000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.prompt.13.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2d2455c81978681b90b08ba66c7\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.13.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.prompt.14.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.14.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Nature + \\u0026 Adventure in New Zealand: A Week of Wonders', destination='New Zealand', + duration_days=7, total_budget_estimate='$1,500 - $2,000', daily_plans=[DayPlan(day_number=1, + date='2023-10-01', title='Arrival in Auckland', activities=[DayActivity(time='10:00 + AM', activity='Arrive at Auckland Airport', location='Auckland Airport', notes='Collect + rental car from the airport.'), DayActivity(time='12:00 PM', activity='Lunch + at Depot Eatery', location='Auckland', notes='Try local favorites like the + green-lipped mussels.'), DayActivity(time='2:00 PM', activity='Visit Auckland + War Memorial Museum', location='Domain Drive, Auckland', notes='Explore Maori + culture and New Zealand\u2019s natural history.'), DayActivity(time='4:00 + PM', activity='Stroll in Auckland Domain', location='Auckland', notes='Enjoy + the gardens and scenic views.'), DayActivity(time='6:00 PM', activity='Dinner + at The Glass Goose Bar \\u0026 Eatery', location='Auckland', notes='Outdoor + seating available.')], meals=['Lunch at Depot Eatery', 'Dinner at The Glass + Goose Bar \\u0026 Eatery'], accommodation='SkyCity Hotel, Auckland'), DayPlan(day_number=2, + date='2023-10-02', title='Exploring Rotorua', activities=[DayActivity(time='8:00 + AM', activity='Drive to Rotorua', location='Auckland to Rotorua (approx. 3 + hours)', notes='Enjoy scenic views along the way.'), DayActivity(time='11:00 + AM', activity='Visit Te Puia', location='Rotorua', notes='See geysers and + learn about Maori culture.'), DayActivity(time='1:00 PM', activity='Lunch + at Puku Puku Caf\xE9', location='Rotorua', notes='Sample local dishes.'), + DayActivity(time='3:00 PM', activity='Relax in the Polynesian Spa', location='Rotorua', + notes='Enjoy geothermal pools.'), DayActivity(time='6:00 PM', activity='Dinner + at Eat Streat', location='Rotorua', notes='Choose from various food stalls.')], + meals=['Lunch at Puku Puku Caf\xE9', 'Dinner at Eat Streat'], accommodation='Regent + of Rotorua'), DayPlan(day_number=3, date='2023-1\"}},{\"key\":\"gen_ai.prompt.14.tool_call_id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"### + Nature \\u0026 Adventure in New Zealand: A Week of Wonders\\n\\n#### Destination: + New Zealand\\n- **Duration:** 7 Days\\n- **Budget:** Moderate ($1,500 - $2,000)\\n- + **Interests:** Nature, Adventure, Culture\\n\\n#### Weather Insights\\n- Current + conditions are overcast with a temperature of 7.6\xB0C.\\n- Expect mild temperatures + with some precipitation next week, ranging from 4\xB0C to 22\xB0C.\\n\\n#### + Trip Overview\\n\\n**Day 1: Arrival in Auckland**\\n- **10:00 AM:** Arrive + at Auckland Airport - Collect rental car.\\n- **12:00 PM:** Lunch at Depot + Eatery - Try local green-lipped mussels.\\n- **2:00 PM:** Visit Auckland War + Memorial Museum - Explore Maori culture.\\n- **4:00 PM:** Stroll in Auckland + Domain - Enjoy gardens and views.\\n- **6:00 PM:** Dinner at The Glass Goose + Bar \\u0026 Eatery.\\n- **Accommodation:** SkyCity Hotel, Auckland\\n\\n**Day + 2: Exploring Rotorua**\\n- **8:00 AM:** Drive to Rotorua (3 hours).\\n- **11:00 + AM:** Visit Te Puia - See geysers and Maori culture.\\n- **1:00 PM:** Lunch + at Puku Puku Caf\xE9 - Sample local dishes.\\n- **3:00 PM:** Relax in Polynesian + Spa - Enjoy geothermal pools.\\n- **6:00 PM:** Dinner at Eat Streat.\\n- **Accommodation:** + Regent of Rotorua\\n\\n**Day 3: Adventure in Taupo**\\n- **8:00 AM:** Drive + to Taupo (1 hour).\\n- **10:00 AM:** Visit Huka Falls.\\n- **12:00 PM:** Lunch + at The Boat Shed Caf\xE9.\\n- **2:00 PM:** Skydiving or Jet Boating - Book + in advance.\\n- **5:00 PM:** Relax at Taupo Lake Front.\\n- **Accommodation:** + Millennium Hotel Taupo\\n\\n**Day 4: Tongariro National Park**\\n- **7:00 + AM:** Drive to Tongariro (1 hour).\\n- **8:30 AM:** Begin Tongariro Alpine + Crossing - Full-day hike.\\n- **12:00 PM:** Lunch on the trail - Pack a picnic.\\n- + **4:00 PM:** Complete hike - Stunning views.\\n- **6:00 PM:** Dinner at a + local lodge.\\n- **Accommodation:** Chateau Tongariro Hotel\\n\\n**Day 5: + Wellington Culture Day**\\n- **8:00 AM:** Drive to Wellington (4 hours).\\n- + **12:00 PM:** Lunch at Fidel's Caf\xE9.\\n- **2:00 PM:** Visit Te Papa Tongarewa + Museum - Free entry.\\n- **4:00 PM:** Walk along Wellington Waterfront.\\n- + **6:00 PM:** Dinner at Ortega Fish Shack.\\n- **A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4339\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"846\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"5185\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"IS6vpvXSyWc=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041984005653000\",\"endTimeUnixNano\":\"1763041985613511000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"936\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"23\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"959\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"brUFs0ciw1M=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041985613918000\",\"endTimeUnixNano\":\"1763041987102501000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Irx+5vAh2RA=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041987103912000\",\"endTimeUnixNano\":\"1763041990567857000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"801\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"50\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"851\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8D1wUHRUnJY=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568009000\",\"endTimeUnixNano\":\"1763041993540330000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"Z0YMsVUAJiE=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041990568056000\",\"endTimeUnixNano\":\"1763041993540426000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"YOs61ryvpF4=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041993541968000\",\"endTimeUnixNano\":\"1763041995719255000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"876\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"84\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"960\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"4JCF5eBk2tQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719607000\",\"endTimeUnixNano\":\"1763041998146609000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ixR9+7Z/j1o=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041995719759000\",\"endTimeUnixNano\":\"1763041998146773000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"8mbS0moocyI=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041998148255000\",\"endTimeUnixNano\":\"1763041999477499000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2374\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"18\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2392\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ZXf5rcFUcLQ=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041999478441000\",\"endTimeUnixNano\":\"1763042000768653000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"1qbdTW8b/2E=\",\"parentSpanId\":\"Ty846xocHPs=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042000769229000\",\"endTimeUnixNano\":\"1763042004651429000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"I + want to explore Oceania in fall. Find good destinations and create an itinerary + for me.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c157f8819781dbf44195f7105a\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_etFsT3TZlUhAhXlW1kZbgf60\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c5f9508197940ea5ee44e7e8d0\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.3.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2c66ad48197944d2355b2d6fc0a\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.5.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\"}},{\"key\":\"gen_ai.prompt.5.tool_call_id\",\"value\":{\"stringValue\":\"call_spOzOrUX0HdaMEIMwT5mUyli\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_SiC5wipjGj23Y5b2RYdYF9H4\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb0fc8819797c0079ac5d04081\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.7.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cb67848197a86b5a1c7e67a41e\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=7.6, + current_conditions='Overcast', forecast_days=[DailyForecast(date='2025-11-14', + temp_max=15.7, temp_min=7.5, precipitation=0.3), DailyForecast(date='2025-11-15', + temp_max=11.0, temp_min=4.4, precipitation=5.0), DailyForecast(date='2025-11-16', + temp_max=14.7, temp_min=2.8, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=14.7, temp_min=5.5, precipitation=0.0), DailyForecast(date='2025-11-18', + temp_max=14.1, temp_min=10.2, precipitation=0.9), DailyForecast(date='2025-11-19', + temp_max=17.4, temp_min=11.2, precipitation=0.9), DailyForecast(date='2025-11-20', + temp_max=22.3, temp_min=9.7, precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_4zfkFYEzgWq1lleXGaHIizjt\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.10.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=25.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-13', temp_max=34.7, temp_min=21.3, + precipitation=0.0), DailyForecast(date='2025-11-14', temp_max=35.2, temp_min=22.3, + precipitation=0.6), DailyForecast(date='2025-11-15', temp_max=27.6, temp_min=18.6, + precipitation=9.1), DailyForecast(date='2025-11-16', temp_max=31.8, temp_min=20.0, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=29.2, temp_min=18.5, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=31.3, temp_min=17.7, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=35.6, temp_min=19.1, + precipitation=0.0)])\"}},{\"key\":\"gen_ai.prompt.10.tool_call_id\",\"value\":{\"stringValue\":\"call_s9NhJKSSW3WcrpvAwc8c08RX\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0aa638b6de6185de006915e2cf55dc8197b86d5e45dff0313e\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.11.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\"}},{\"key\":\"gen_ai.prompt.12.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.12.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\"}},{\"key\":\"gen_ai.prompt.12.tool_call_id\",\"value\":{\"stringValue\":\"call_3rHzbASDGtDUyASudTBjMzAY\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"nature, + adventure, culture\\\",\\\"weather_info\\\":\\\"Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\\",\\\"destination_details\\\":\\\"New + Zealand is an island country in the southwestern Pacific Ocean. It consists + of two main landmasses\u2014the North Island and the South Island \u2014and + over 600 smaller islands. It's known for varied topography and sharp mountain + peaks, including the Southern Alps. The capital city is Wellington, and its + most populous city is Auckland.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_rPBzjHplzDZhnypeGRQ6DLLs\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2545\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"142\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2687\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"NKOz3ltzNm0=\",\"parentSpanId\":\"r4Bxnys8Ajs=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763042005169975000\",\"endTimeUnixNano\":\"1763042043090298000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: nature, adventure, culture\\n- Weather: Current conditions: Overcast, + 7.6\xB0C. Forecast shows mild temperatures with some precipitation, ranging + from 4\xB0C to 22\xB0C over the next week.\\n- Destination Info: New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It's known for varied topography and sharp mountain peaks, + including the Southern Alps. The capital city is Wellington, and its most + populous city is Auckland.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and nature, adventure, culture interests.\\nEach + day should have 3-5 activities with specific times, locations, and helpful + notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS3K2CF576d4YsisW6wGQEds7rmH\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2169\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1573\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"596\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Nature + \\u0026 Adventure in New Zealand: A Week of Wonders\\\",\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500 + - $2,000\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + at Auckland Airport\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Collect + rental car from the airport.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Depot Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Try + local favorites like the green-lipped mussels.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Visit Auckland War Memorial Museum\\\",\\\"location\\\":\\\"Domain + Drive, Auckland\\\",\\\"notes\\\":\\\"Explore Maori culture and New Zealand\u2019s + natural history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Stroll + in Auckland Domain\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Enjoy + the gardens and scenic views.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\",\\\"location\\\":\\\"Auckland\\\",\\\"notes\\\":\\\"Outdoor + seating available.\\\"}],\\\"meals\\\":[\\\"Lunch at Depot Eatery\\\",\\\"Dinner + at The Glass Goose Bar \\u0026 Eatery\\\"],\\\"accommodation\\\":\\\"SkyCity + Hotel, Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + Rotorua\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Rotorua\\\",\\\"location\\\":\\\"Auckland to Rotorua (approx. 3 hours)\\\",\\\"notes\\\":\\\"Enjoy + scenic views along the way.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit + Te Puia\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"See geysers + and learn about Maori culture.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Puku Puku Caf\xE9\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Sample + local dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + in the Polynesian Spa\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Enjoy + geothermal pools.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Eat Streat\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Choose + from various food stalls.\\\"}],\\\"meals\\\":[\\\"Lunch at Puku Puku Caf\xE9\\\",\\\"Dinner + at Eat Streat\\\"],\\\"accommodation\\\":\\\"Regent of Rotorua\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Adventure + in Taupo\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Taupo\\\",\\\"location\\\":\\\"Rotorua to Taupo (approx. 1 hour)\\\",\\\"notes\\\":\\\"Stop + at Huk\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"056VGM+8Nok=\",\"parentSpanId\":\"brUFs0ciw1M=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041986115747000\",\"endTimeUnixNano\":\"1763041987094583000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Oceania\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"kvjaqj4KYrQ=\",\"parentSpanId\":\"8D1wUHRUnJY=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041991671179000\",\"endTimeUnixNano\":\"1763041992478589000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=New+Zealand\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"u+rad2kmPnI=\",\"parentSpanId\":\"Z0YMsVUAJiE=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041992480116000\",\"endTimeUnixNano\":\"1763041993538494000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Australia\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"ETHKBPTcA2s=\",\"parentSpanId\":\"4JCF5eBk2tQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041996225152000\",\"endTimeUnixNano\":\"1763041997195369000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-41.5000831\\u0026longitude=172.8344077\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"jQ6zmabmw2M=\",\"parentSpanId\":\"ixR9+7Z/j1o=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041997198300000\",\"endTimeUnixNano\":\"1763041998144145000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=-24.7761086\\u0026longitude=134.755\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"aTveKHm3Rf9GfCC/nNLqeg==\",\"spanId\":\"0YqSiXc6Hig=\",\"parentSpanId\":\"ZXf5rcFUcLQ=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041999981250000\",\"endTimeUnixNano\":\"1763042000767913000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/New%20Zealand\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:47 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '98254' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/traces/eed63641fc3ffa3ea40a166e2604edd2 + response: + body: + string: "{\"batches\":[{\"resource\":{\"attributes\":[{\"key\":\"telemetry.sdk.language\",\"value\":{\"stringValue\":\"python\"}},{\"key\":\"telemetry.sdk.name\",\"value\":{\"stringValue\":\"opentelemetry\"}},{\"key\":\"telemetry.sdk.version\",\"value\":{\"stringValue\":\"1.38.0\"}},{\"key\":\"service.name\",\"value\":{\"stringValue\":\"travel-agent-demo\"}}]},\"scopeSpans\":[{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai_agents\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"kDfoXagrNmk=\",\"name\":\"Agent + Workflow\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306563000\",\"endTimeUnixNano\":\"1763041981994302000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"workflow\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.workflow.name\",\"value\":{\"stringValue\":\"Agent + Workflow\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"5t6oCNV1x24=\",\"parentSpanId\":\"kDfoXagrNmk=\",\"name\":\"Travel + Planner Agent.agent\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894306752000\",\"endTimeUnixNano\":\"1763041981994217000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"CPDw9H+t3W0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041900556562000\",\"endTimeUnixNano\":\"1763041909681624000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here + are some great beach destinations for families in the Americas to consider:\\n\\n1. + **Barbados (Caribbean)**\\n - Language: English\\n - Currency: BBD\\n + \ - Known for its beautiful sandy beaches and vibrant culture.\\n\\n2. **Puerto + Rico (Caribbean)**\\n - Languages: English, Spanish\\n - Currency: USD\\n + \ - Offers lovely beaches, lush rainforests, and a rich cultural heritage.\\n\\n3. + **Turks and Caicos Islands (Caribbean)**\\n - Language: English\\n - Currency: + USD\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\n\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\n\\nI'll gather weather + information and details about Barbados and then create your itinerary.\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.1.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.completion.2.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.2.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.completion.2.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"664\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"221\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"885\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"gjU8x51ljN8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_location_coordinates.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909682975000\",\"endTimeUnixNano\":\"1763041912228857000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"saPJCTZOa8E=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_destination_info.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041909683354000\",\"endTimeUnixNano\":\"1763041912228748000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"v4pJsgk8eu8=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041912233276000\",\"endTimeUnixNano\":\"1763041916478547000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"1859\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"37\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"1896\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vW7dC7113KM=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"get_weather_forecast.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041916479365000\",\"endTimeUnixNano\":\"1763041923081358000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"S5LEq3ro4i0=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041923083562000\",\"endTimeUnixNano\":\"1763041926952714000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"2178\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"127\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2305\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"0revCekYick=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"create_itinerary.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041926953355000\",\"endTimeUnixNano\":\"1763041968277636000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"awXbMZjA1IQ=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041968278645000\",\"endTimeUnixNano\":\"1763041981992200000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e269af588193a7a54b29508be2b6\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.prompt.1.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.prompt.2.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.2.content\",\"value\":{\"stringValue\":\"status='success' + message='Found 10 destinations in Americas' countries=[CountryInfo(name='Chile', + capital='Santiago', region='Americas', subregion='South America', population=20206953, + currencies=['CLP'], languages=['Spanish'], timezones=['UTC-06:00', 'UTC-04:00']), + CountryInfo(name='Guyana', capital='Georgetown', region='Americas', subregion='South + America', population=772975, currencies=['GYD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Dominica', capital='Roseau', region='Americas', subregion='Caribbean', + population=67408, currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Barbados', capital='Bridgetown', region='Americas', subregion='Caribbean', + population=267800, currencies=['BBD'], languages=['English'], timezones=['UTC-04:00']), + CountryInfo(name='Peru', capital='Lima', region='Americas', subregion='South + America', population=34350244, currencies=['PEN'], languages=['Aymara', 'Quechua', + 'Spanish'], timezones=['UTC-05:00']), CountryInfo(name='Puerto Rico', capital='San + Juan', region='Americas', subregion='Caribbean', population=3203295, currencies=['USD'], + languages=['English', 'Spanish'], timezones=['UTC-04:00']), CountryInfo(name='Belize', + capital='Belmopan', region='Americas', subregion='Central America', population=417634, + currencies=['BZD'], languages=['Belizean Creole', 'English', 'Spanish'], timezones=['UTC-06:00']), + CountryInfo(name='Mexico', capital='Mexico City', region='Americas', subregion='North + America', population=130575786, currencies=['MXN'], languages=['Spanish'], + timezones=['UTC-08:00', 'UTC-07:00', 'UTC-06:00']), CountryInfo(name='Anguilla', + capital='The Valley', region='Americas', subregion='Caribbean', population=16010, + currencies=['XCD'], languages=['English'], timezones=['UTC-04:00']), CountryInfo(name='Turks + and Caicos Islands', capital='Cockburn Town', region='Americas', subregion='Caribbean', + population=50828, currencies=['USD'], languages=['English'], timezones=['UTC-04:00'])] + count=10\"}},{\"key\":\"gen_ai.prompt.2.tool_call_id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.prompt.3.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.3.content\",\"value\":{\"stringValue\":\"[{\\\"annotations\\\": + [], \\\"text\\\": \\\"Here are some great beach destinations for families + in the Americas to consider:\\\\n\\\\n1. **Barbados (Caribbean)**\\\\n - + Language: English\\\\n - Currency: BBD\\\\n - Known for its beautiful + sandy beaches and vibrant culture.\\\\n\\\\n2. **Puerto Rico (Caribbean)**\\\\n + \ - Languages: English, Spanish\\\\n - Currency: USD\\\\n - Offers lovely + beaches, lush rainforests, and a rich cultural heritage.\\\\n\\\\n3. **Turks + and Caicos Islands (Caribbean)**\\\\n - Language: English\\\\n - Currency: + USD\\\\n - Known for stunning beaches and excellent opportunities for snorkeling + and diving.\\\\n\\\\nLet's focus on **Barbados** for its family-friendly atmosphere, + English-speaking environment, and beautiful beaches.\\\\n\\\\nI'll gather + weather information and details about Barbados and then create your itinerary.\\\", + \\\"type\\\": \\\"output_text\\\", \\\"logprobs\\\": []}]\"}},{\"key\":\"gen_ai.prompt.4.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e27587ac819398a33bca283fea2e\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"gen_ai.prompt.4.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.5.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e275a0188193be374bf4bfe362da\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"gen_ai.prompt.5.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination_name\\\":\\\"Barbados\\\"}\"}},{\"key\":\"gen_ai.prompt.6.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.6.content\",\"value\":{\"stringValue\":\"status='success' + message='Coordinates found for Barbados' coordinates=LocationCoordinates(location_name='Barbados', + latitude=13.1500331, longitude=-59.5250305, country='Barbados', display_name='Barbados')\"}},{\"key\":\"gen_ai.prompt.6.tool_call_id\",\"value\":{\"stringValue\":\"call_fl3rfD27vsqe56L4y1TSYemr\"}},{\"key\":\"gen_ai.prompt.7.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.7.content\",\"value\":{\"stringValue\":\"status='success' + message='Retrieved information for Barbados' info=DestinationInfo(title='Barbados', + summary='Island country in the Atlantic Ocean', extract='Barbados is an island + country in the Caribbean located in the Atlantic Ocean. It is part of the + Lesser Antilles of the West Indies and the easternmost island of the Caribbean + region. It lies on the boundary of the South American and Caribbean plates. + Its capital and largest city is Bridgetown.')\"}},{\"key\":\"gen_ai.prompt.7.tool_call_id\",\"value\":{\"stringValue\":\"call_mXq4B6xxZFCYUf12nUboqXiq\"}},{\"key\":\"gen_ai.prompt.8.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e279cb64819394a3a5720c557e82\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"gen_ai.prompt.8.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"location_name\\\":\\\"Barbados\\\",\\\"latitude\\\":13.1500331,\\\"longitude\\\":-59.5250305}\"}},{\"key\":\"gen_ai.prompt.9.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.9.content\",\"value\":{\"stringValue\":\"status='success' + message='Weather forecast retrieved for Barbados' forecast=WeatherForecast(location='Barbados', + latitude=13.1500331, longitude=-59.5250305, current_temperature=27.4, current_conditions='Mainly + clear', forecast_days=[DailyForecast(date='2025-11-13', temp_max=27.7, temp_min=26.6, + precipitation=0.5), DailyForecast(date='2025-11-14', temp_max=28.7, temp_min=26.9, + precipitation=0.3), DailyForecast(date='2025-11-15', temp_max=27.5, temp_min=26.3, + precipitation=3.4), DailyForecast(date='2025-11-16', temp_max=27.5, temp_min=26.1, + precipitation=5.3), DailyForecast(date='2025-11-17', temp_max=28.4, temp_min=26.4, + precipitation=13.2), DailyForecast(date='2025-11-18', temp_max=27.5, temp_min=26.7, + precipitation=12.9), DailyForecast(date='2025-11-19', temp_max=28.0, temp_min=26.5, + precipitation=8.1)])\"}},{\"key\":\"gen_ai.prompt.9.tool_call_id\",\"value\":{\"stringValue\":\"call_JSlibNCl6t6xoD4ucccpExyh\"}},{\"key\":\"gen_ai.prompt.10.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.id\",\"value\":{\"stringValue\":\"fc_0712268d962268be006915e284b4408193b787ece129274ff2\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"gen_ai.prompt.10.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"beaches\\\",\\\"weather_info\\\":\\\"Current + temperature 27.4\xB0C, mainly clear conditions. Forecast: mostly warm weather + with some rain expected later in the week.\\\",\\\"destination_details\\\":\\\"Barbados + is an island country in the Caribbean located in the Atlantic Ocean. It is + part of the Lesser Antilles of the West Indies and the easternmost island + of the Caribbean region. It lies on the boundary of the South American and + Caribbean plates. Its capital and largest city is Bridgetown.\\\"}\"}},{\"key\":\"gen_ai.prompt.11.role\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.prompt.11.content\",\"value\":{\"stringValue\":\"status='success' + message='Created 7-day itinerary for Barbados' itinerary=TravelItinerary(trip_title='Beach + Bliss in Barbados: A 7-Day Tropical Escape', destination='Barbados', duration_days=7, + total_budget_estimate='$1,500', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and Beach Day', activities=[DayActivity(time='12:00 PM', activity='Check-in + at hotel', location='Turtle Beach by Elegant Hotels', notes='Enjoy welcome + drinks and settle into your room.'), DayActivity(time='1:30 PM', activity='Lunch + at the hotel restaurant', location='Turtle Beach', notes='Try the grilled + fish with local spices.'), DayActivity(time='3:00 PM', activity='Relax at + Dover Beach', location='Dover Beach', notes='Beach chairs and umbrellas available + for rent.'), DayActivity(time='6:00 PM', activity='Sunset viewing', location='Dover + Beach', notes='Perfect spot for photos.'), DayActivity(time='7:30 PM', activity='Dinner + at The Oistins Fish Fry', location='Oistins', notes='A vibrant atmosphere + with fresh seafood.')], meals=['Lunch at Turtle Beach', 'Dinner at Oistins + Fish Fry'], accommodation='Turtle Beach by Elegant Hotels'), DayPlan(day_number=2, + date='2023-10-02', title='Explore Bridgetown', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at the hotel', location='Turtle Beach', notes='Buffet + style with local and international options.'), DayActivity(time='9:30 AM', + activity='Visit the Barbados Museum \\u0026 Historical Society', location='Bridgetown', + notes=\\\"Learn about the island's history.\\\"), DayActivity(time='12:00 + PM', activity='Lunch at Brown Sugar', location='Bridgetown', notes='Taste + local dishes in an outdoor setting.'), DayActivity(time='2:00 PM', activity='Explore + George Street and local shops', location='Bridgetown', notes='Pick up souvenirs + and local crafts.'), DayActivity(time='4:00 PM', activity='Relax at Pebbles + Beach', location='Pebbles Beach', notes='Enjoy swimming and sunbathing.'), + DayActivity(time='6:00 PM', activity='Dinner at The Cliff', location='St. + James', notes='Reservations recommend\"}},{\"key\":\"gen_ai.prompt.11.tool_call_id\",\"value\":{\"stringValue\":\"call_ckR71y4OwQcqkMIf2d3XOIRF\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"Here's + a detailed 7-day itinerary for your family vacation in Barbados, focusing + on beach activities and cultural experiences:\\n\\n### Trip Title: Beach Bliss + in Barbados: A 7-Day Tropical Escape\\n\\n#### **Day 1: Arrival and Beach + Day**\\n- **12:00 PM:** Check-in at Turtle Beach by Elegant Hotels. Enjoy + welcome drinks and settle in.\\n- **1:30 PM:** Lunch at the hotel restaurant. + Try the grilled fish with local spices.\\n- **3:00 PM:** Relax at Dover Beach. + Beach chairs and umbrellas available.\\n- **6:00 PM:** Enjoy a sunset viewing + at Dover Beach\u2014perfect for photos.\\n- **7:30 PM:** Dinner at The Oistins + Fish Fry. Vibrant atmosphere with fresh seafood.\\n\\n#### **Day 2: Explore + Bridgetown**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** + Visit the Barbados Museum \\u0026 Historical Society. Learn about the island's + history.\\n- **12:00 PM:** Lunch at Brown Sugar. Taste local dishes.\\n- **2:00 + PM:** Explore George Street and local shops for souvenirs.\\n- **4:00 PM:** + Relax at Pebbles Beach. Enjoy swimming and sunbathing.\\n- **6:00 PM:** Dinner + at The Cliff. Stunning ocean views, reservations recommended.\\n\\n#### **Day + 3: Catamaran Adventure**\\n- **7:30 AM:** Breakfast at Turtle Beach.\\n- **9:00 + AM:** Catamaran cruise from Bridgetown. Swim with turtles and snorkel at coral + reefs.\\n- **12:30 PM:** Lunch on board the catamaran.\\n- **3:00 PM:** Return + to the hotel, relax at the beach or pool.\\n- **7:00 PM:** Dinner at The Round + House in Bathsheba. Try local fish dishes.\\n\\n#### **Day 4: Beach Hopping**\\n- + **8:00 AM:** Breakfast at Turtle Beach.\\n- **9:30 AM:** Visit Crane Beach. + Famous for its pink sand.\\n- **12:00 PM:** Lunch at The Crane Beach Resort.\\n- + **2:00 PM:** Head to Bottom Bay Beach. Less crowded and perfect for relaxation.\\n- + **5:00 PM:** Return to hotel.\\n- **7:30 PM:** Dinner at Naru Restaurant and + Lounge. Local and Asian fusion cuisine.\\n\\n#### **Day 5: Island Culture + and Relaxation**\\n- **8:00 AM:** Breakfast at Turtle Beach.\\n- **10:00 AM:** + Visit St. Nicholas Abbey. Tour the plantation and rum distillery.\\n- **1:00 + PM:** Lunch at the A\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"4121\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"842\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"4963\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"vSd7s42xrTw=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"openai.response\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041894311147000\",\"endTimeUnixNano\":\"1763041898739189000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.operation.name\",\"value\":{\"stringValue\":\"response\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"Help + me plan a vacation in Americas for families. I'm interested in beaches.\"}},{\"key\":\"llm.request.functions.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"llm.request.functions.0.description\",\"value\":{\"stringValue\":\"Search + for travel destinations by region or subregion using REST Countries API.\"}},{\"key\":\"llm.request.functions.0.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\"}},{\"key\":\"llm.request.functions.1.name\",\"value\":{\"stringValue\":\"get_location_coordinates\"}},{\"key\":\"llm.request.functions.1.description\",\"value\":{\"stringValue\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\"}},{\"key\":\"llm.request.functions.1.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.2.name\",\"value\":{\"stringValue\":\"get_weather_forecast\"}},{\"key\":\"llm.request.functions.2.description\",\"value\":{\"stringValue\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\"}},{\"key\":\"llm.request.functions.2.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.3.name\",\"value\":{\"stringValue\":\"get_destination_info\"}},{\"key\":\"llm.request.functions.3.description\",\"value\":{\"stringValue\":\"Get + information about a destination from Wikipedia API.\"}},{\"key\":\"llm.request.functions.3.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\"}},{\"key\":\"llm.request.functions.4.name\",\"value\":{\"stringValue\":\"calculate_travel_distance\"}},{\"key\":\"llm.request.functions.4.description\",\"value\":{\"stringValue\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\"}},{\"key\":\"llm.request.functions.4.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\"}},{\"key\":\"llm.request.functions.5.name\",\"value\":{\"stringValue\":\"create_itinerary\"}},{\"key\":\"llm.request.functions.5.description\",\"value\":{\"stringValue\":\"Create + a detailed day-by-day travel itinerary using AI.\"}},{\"key\":\"llm.request.functions.5.parameters\",\"value\":{\"stringValue\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.top_p\",\"value\":{\"doubleValue\":1}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-2024-08-06\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"tool_calls\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.arguments\",\"value\":{\"stringValue\":\"{\\\"region\\\":\\\"Americas\\\",\\\"subregion\\\":\\\"\\\"}\"}},{\"key\":\"gen_ai.completion.0.tool_calls.0.id\",\"value\":{\"stringValue\":\"call_OYkoAZhJpP3lq6LRkwV3RGDI\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"932\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"22\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"954\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"dkkP9YWRUaI=\",\"parentSpanId\":\"5t6oCNV1x24=\",\"name\":\"search_destinations.tool\",\"kind\":\"SPAN_KIND_INTERNAL\",\"startTimeUnixNano\":\"1763041898739699000\",\"endTimeUnixNano\":\"1763041900553722000\",\"attributes\":[{\"key\":\"traceloop.span.kind\",\"value\":{\"stringValue\":\"tool\"}},{\"key\":\"gen_ai.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai_agents\"}},{\"key\":\"gen_ai.completion.tool.name\",\"value\":{\"stringValue\":\"search_destinations\"}},{\"key\":\"gen_ai.completion.tool.type\",\"value\":{\"stringValue\":\"FunctionTool\"}},{\"key\":\"gen_ai.completion.tool.strict_json_schema\",\"value\":{\"boolValue\":true}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}}],\"status\":{\"code\":\"STATUS_CODE_OK\"}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.requests\",\"version\":\"0.59b0\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"jB510DMs6/8=\",\"parentSpanId\":\"saPJCTZOa8E=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910186602000\",\"endTimeUnixNano\":\"1763041910919083000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Barbados\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"I4smyApmv2I=\",\"parentSpanId\":\"gjU8x51ljN8=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041910919911000\",\"endTimeUnixNano\":\"1763041912227844000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://nominatim.openstreetmap.org/search?q=Barbados\\u0026format=json\\u0026limit=1\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wsif3cTB5R0=\",\"parentSpanId\":\"vW7dC7113KM=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041916984585000\",\"endTimeUnixNano\":\"1763041923078888000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://api.open-meteo.com/v1/forecast?latitude=13.1500331\\u0026longitude=-59.5250305\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}},{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"T263X02AHSc=\",\"parentSpanId\":\"dkkP9YWRUaI=\",\"name\":\"GET\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041899242488000\",\"endTimeUnixNano\":\"1763041900545636000\",\"attributes\":[{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"http.method\",\"value\":{\"stringValue\":\"GET\"}},{\"key\":\"http.url\",\"value\":{\"stringValue\":\"https://restcountries.com/v3.1/region/Americas\"}},{\"key\":\"http.status_code\",\"value\":{\"intValue\":\"200\"}}],\"status\":{}}]},{\"scope\":{\"name\":\"opentelemetry.instrumentation.openai.v1\",\"version\":\"0.47.5\"},\"spans\":[{\"traceId\":\"7tY2Qfw/+j6kChZuJgTt0g==\",\"spanId\":\"wJnvML6OlKo=\",\"parentSpanId\":\"0revCekYick=\",\"name\":\"openai.chat\",\"kind\":\"SPAN_KIND_CLIENT\",\"startTimeUnixNano\":\"1763041927471141000\",\"endTimeUnixNano\":\"1763041968276800000\",\"attributes\":[{\"key\":\"llm.request.type\",\"value\":{\"stringValue\":\"chat\"}},{\"key\":\"gen_ai.agent.name\",\"value\":{\"stringValue\":\"Travel + Planner Agent\"}},{\"key\":\"gen_ai.system\",\"value\":{\"stringValue\":\"openai\"}},{\"key\":\"gen_ai.request.model\",\"value\":{\"stringValue\":\"gpt-4o-mini\"}},{\"key\":\"gen_ai.request.max_tokens\",\"value\":{\"intValue\":\"3000\"}},{\"key\":\"gen_ai.request.temperature\",\"value\":{\"doubleValue\":0.7}},{\"key\":\"llm.headers\",\"value\":{\"stringValue\":\"None\"}},{\"key\":\"llm.is_streaming\",\"value\":{\"boolValue\":false}},{\"key\":\"gen_ai.request.structured_output_schema\",\"value\":{\"stringValue\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\"}},{\"key\":\"gen_ai.openai.api_base\",\"value\":{\"stringValue\":\"https://api.openai.com/v1/\"}},{\"key\":\"gen_ai.prompt.0.role\",\"value\":{\"stringValue\":\"system\"}},{\"key\":\"gen_ai.prompt.0.content\",\"value\":{\"stringValue\":\"You + are an expert travel planner who creates detailed, practical itineraries.\"}},{\"key\":\"gen_ai.prompt.1.role\",\"value\":{\"stringValue\":\"user\"}},{\"key\":\"gen_ai.prompt.1.content\",\"value\":{\"stringValue\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Barbados.\\n\\nTrip + Details:\\n- Destination: Barbados\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: beaches\\n- Weather: Current temperature 27.4\xB0C, mainly clear + conditions. Forecast: mostly warm weather with some rain expected later in + the week.\\n- Destination Info: Barbados is an island country in the Caribbean + located in the Atlantic Ocean. It is part of the Lesser Antilles of the West + Indies and the easternmost island of the Caribbean region. It lies on the + boundary of the South American and Caribbean plates. Its capital and largest + city is Bridgetown.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and beaches interests.\\nEach day should have 3-5 + activities with specific times, locations, and helpful notes.\\n\"}},{\"key\":\"gen_ai.request.reasoning_effort\",\"value\":{\"arrayValue\":{}}},{\"key\":\"gen_ai.response.model\",\"value\":{\"stringValue\":\"gpt-4o-mini-2024-07-18\"}},{\"key\":\"gen_ai.response.id\",\"value\":{\"stringValue\":\"chatcmpl-CbS25L4VnHyasIegXuwEirm30SBWf\"}},{\"key\":\"gen_ai.openai.system_fingerprint\",\"value\":{\"stringValue\":\"fp_51db84afab\"}},{\"key\":\"llm.usage.total_tokens\",\"value\":{\"intValue\":\"2288\"}},{\"key\":\"gen_ai.usage.completion_tokens\",\"value\":{\"intValue\":\"1717\"}},{\"key\":\"gen_ai.usage.prompt_tokens\",\"value\":{\"intValue\":\"571\"}},{\"key\":\"gen_ai.usage.cache_read_input_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.usage.reasoning_tokens\",\"value\":{\"intValue\":\"0\"}},{\"key\":\"gen_ai.completion.0.finish_reason\",\"value\":{\"stringValue\":\"stop\"}},{\"key\":\"gen_ai.completion.0.role\",\"value\":{\"stringValue\":\"assistant\"}},{\"key\":\"gen_ai.completion.0.content\",\"value\":{\"stringValue\":\"{\\\"trip_title\\\":\\\"Beach + Bliss in Barbados: A 7-Day Tropical Escape\\\",\\\"destination\\\":\\\"Barbados\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Beach Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Check-in + at hotel\\\",\\\"location\\\":\\\"Turtle Beach by Elegant Hotels\\\",\\\"notes\\\":\\\"Enjoy + welcome drinks and settle into your room.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Lunch + at the hotel restaurant\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Try + the grilled fish with local spices.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at Dover Beach\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Beach + chairs and umbrellas available for rent.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Sunset + viewing\\\",\\\"location\\\":\\\"Dover Beach\\\",\\\"notes\\\":\\\"Perfect + spot for photos.\\\"},{\\\"time\\\":\\\"7:30 PM\\\",\\\"activity\\\":\\\"Dinner + at The Oistins Fish Fry\\\",\\\"location\\\":\\\"Oistins\\\",\\\"notes\\\":\\\"A + vibrant atmosphere with fresh seafood.\\\"}],\\\"meals\\\":[\\\"Lunch at Turtle + Beach\\\",\\\"Dinner at Oistins Fish Fry\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Explore + Bridgetown\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at the hotel\\\",\\\"location\\\":\\\"Turtle Beach\\\",\\\"notes\\\":\\\"Buffet + style with local and international options.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + the Barbados Museum \\u0026 Historical Society\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Learn + about the island's history.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Brown Sugar\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Taste + local dishes in an outdoor setting.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Explore + George Street and local shops\\\",\\\"location\\\":\\\"Bridgetown\\\",\\\"notes\\\":\\\"Pick + up souvenirs and local crafts.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Relax + at Pebbles Beach\\\",\\\"location\\\":\\\"Pebbles Beach\\\",\\\"notes\\\":\\\"Enjoy + swimming and sunbathing.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at The Cliff\\\",\\\"location\\\":\\\"St. James\\\",\\\"notes\\\":\\\"Reservations + recommended for stunning ocean views.\\\"}],\\\"meals\\\":[\\\"Breakfast at + Turtle Beach\\\",\\\"Lunch at Brown Sugar\\\",\\\"Dinner at The Cliff\\\"],\\\"accommodation\\\":\\\"Turtle + Beach by Elegant Hotels\"}}],\"status\":{}}]}]}]}" + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:47 GMT + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + content-length: + - '79035' + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_tempo_integration/TestTempoTraceQL.test_search_with_multiple_filters.yaml b/tests/integration/cassettes/test_tempo_integration/TestTempoTraceQL.test_search_with_multiple_filters.yaml new file mode 100644 index 0000000..ce4d25c --- /dev/null +++ b/tests/integration/cassettes/test_tempo_integration/TestTempoTraceQL.test_search_with_multiple_filters.yaml @@ -0,0 +1,69 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B%7D&limit=1000 + response: + body: + string: '{"traces":[{"traceID":"bec9c8df1c3a22a134e4c9c7aa0f0ce3","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042458122243000","durationMs":78773,"spanSet":{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23},"spanSets":[{"spans":[{"spanID":"86d3b7d7fc6340dd","startTimeUnixNano":"1763042458122243000","durationNanos":"78773159000"},{"spanID":"d211646049b4a400","startTimeUnixNano":"1763042458123662000","durationNanos":"78771654000"},{"spanID":"1524b568cb6ea388","startTimeUnixNano":"1763042521888311000","durationNanos":"15005374000"}],"matched":23}],"serviceStats":{"travel-agent-demo2":{"spanCount":23}}},{"traceID":"6ce0a0129015a826c7f54b78275cfe37","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042290335056000","durationMs":165781,"spanSet":{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"40cddd148de5e768","startTimeUnixNano":"1763042290335056000","durationNanos":"165781359000"},{"spanID":"de23a8a7bea8dd2c","startTimeUnixNano":"1763042290336958000","durationNanos":"165779362000"},{"spanID":"1a273c93a6725233","startTimeUnixNano":"1763042433338440000","durationNanos":"22771507000"}],"matched":28}],"serviceStats":{"travel-agent-demo2":{"spanCount":28}}},{"traceID":"b37b4c7727a54482f8c71cb88799c108","rootServiceName":"travel-agent-demo2","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042214208334000","durationMs":74124,"spanSet":{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18},"spanSets":[{"spans":[{"spanID":"5fa5e00f3beedbfa","startTimeUnixNano":"1763042214208334000","durationNanos":"74124100000"},{"spanID":"ca47c89257b27e7f","startTimeUnixNano":"1763042214208605000","durationNanos":"74123748000"},{"spanID":"b6529d259784e9cd","startTimeUnixNano":"1763042274303621000","durationNanos":"14027779000"}],"matched":18}],"serviceStats":{"travel-agent-demo2":{"spanCount":18}}},{"traceID":"42ff472d7feb6215bec0cf4e350675b2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042187232503000","durationMs":10109,"spanSet":{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10},"spanSets":[{"spans":[{"spanID":"34fcf1bb3fafa39e","startTimeUnixNano":"1763042187236891000","durationNanos":"2223290000"},{"spanID":"267fb9e41508b20f","startTimeUnixNano":"1763042192790536000","durationNanos":"4551608000"},{"spanID":"a94b4056fdcc5ab8","startTimeUnixNano":"1763042187234430000","durationNanos":"10107769000"}],"matched":10}],"serviceStats":{"travel-agent-demo":{"spanCount":10}}},{"traceID":"9a8cb895bee63fabb705329a05ced33b","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763042057714246000","durationMs":127512,"spanSet":{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28},"spanSets":[{"spans":[{"spanID":"5551aa3f766587f2","startTimeUnixNano":"1763042057714246000","durationNanos":"127512595000"},{"spanID":"79b2308a07bfb7f2","startTimeUnixNano":"1763042057715150000","durationNanos":"127511610000"},{"spanID":"5e6305e10575b792","startTimeUnixNano":"1763042160420265000","durationNanos":"24803777000"}],"matched":28}],"serviceStats":{"travel-agent-demo":{"spanCount":28}}},{"traceID":"693bde2879b745ff467c20bf9cd2ea7a","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041984002122000","durationMs":71704,"spanSet":{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22},"spanSets":[{"spans":[{"spanID":"a40a5bd0bb0e49fd","startTimeUnixNano":"1763041984002122000","durationNanos":"71704252000"},{"spanID":"4f2f38eb1a1c1cfb","startTimeUnixNano":"1763041984003244000","durationNanos":"71703000000"},{"spanID":"af80719f2b3c023b","startTimeUnixNano":"1763042004652154000","durationNanos":"38440688000"}],"matched":22}],"serviceStats":{"travel-agent-demo":{"spanCount":22}}},{"traceID":"eed63641fc3ffa3ea40a166e2604edd2","rootServiceName":"travel-agent-demo","rootTraceName":"Agent + Workflow","startTimeUnixNano":"1763041894306563000","durationMs":87687,"spanSet":{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17},"spanSets":[{"spans":[{"spanID":"9037e85da82b3669","startTimeUnixNano":"1763041894306563000","durationNanos":"87687739000"},{"spanID":"e6dea808d575c76e","startTimeUnixNano":"1763041894306752000","durationNanos":"87687465000"},{"spanID":"08f0f0f47faddd6d","startTimeUnixNano":"1763041900556562000","durationNanos":"9125062000"}],"matched":17}],"serviceStats":{"travel-agent-demo":{"spanCount":17}}}],"metrics":{"inspectedBytes":"43192","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:47 GMT + Vary: + - Accept-Encoding + content-length: + - '6560' + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + host: + - localhost:3200 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3200/api/search?q=%7B+resource.service.name+%3D+%22travel-agent-demo%22+%26%26+span.duration_ms+%3E+50+%7D&limit=10 + response: + body: + string: '{"traces":[],"metrics":{"inspectedBytes":"59731","totalBlocks":2,"completedJobs":5,"totalJobs":5,"totalBlockBytes":"120658"}}' + headers: + Content-Length: + - '125' + Content-Type: + - application/json + Date: + - Thu, 13 Nov 2025 14:12:47 GMT + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopBackendHealth.test_health_check_healthy.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopBackendHealth.test_health_check_healthy.yaml new file mode 100644 index 0000000..85fb24e --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopBackendHealth.test_health_check_healthy.yaml @@ -0,0 +1,864 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3001/v2/warehouse/spans + response: + body: + string: "{\"spans\":{\"data\":[{\"environment\":\"prd\",\"timestamp\":1759641806226,\"trace_id\":\"862bb246ff5863b395d03ec5498ebb3b\",\"span_id\":\"50e984b24aca0983\",\"parent_span_id\":\"619fdd77f34264b2\",\"trace_state\":\"\",\"span_name\":\"Main + Chat Agent.agent\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Main + Chat Agent\",\"llm.vendor\":\"openai_agents\",\"openai.agent.handoff0\":\"{\\\"name\\\": + \\\"unknown\\\", \\\"instructions\\\": \\\"No instructions\\\"}\",\"traceloop.span.kind\":\"agent\"},\"duration\":2432,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641806225,\"trace_id\":\"862bb246ff5863b395d03ec5498ebb3b\",\"span_id\":\"619fdd77f34264b2\",\"parent_span_id\":\"\",\"trace_state\":\"\",\"span_name\":\"Agent + Workflow\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.vendor\":\"openai_agents\",\"llm.workflow.name\":\"Agent + Workflow\",\"traceloop.span.kind\":\"workflow\"},\"duration\":14650,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641806229,\"trace_id\":\"862bb246ff5863b395d03ec5498ebb3b\",\"span_id\":\"c1388b2257f2255a\",\"parent_span_id\":\"50e984b24aca0983\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Main + Chat Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Handoff + to the Recipe Editor Agent agent to handle the request. \",\"llm.request.functions.0.name\":\"transfer_to_recipe_editor_agent\",\"llm.request.functions.0.parameters\":\"{\\\"additionalProperties\\\": + false, \\\"type\\\": \\\"object\\\", \\\"properties\\\": {}, \\\"required\\\": + []}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"14\",\"llm.usage.prompt_tokens\":\"223\",\"llm.usage.total_tokens\":\"237\",\"llm.vendor\":\"openai\"},\"duration\":2427,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Suggest + a easy recipe using beans.\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{}\",\"llm.completions.0.tool_calls.0.id\":\"call_qdO0akN8okpuweAurb3VQoIF\",\"llm.completions.0.tool_calls.0.name\":\"transfer_to_recipe_editor_agent\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641808659,\"trace_id\":\"862bb246ff5863b395d03ec5498ebb3b\",\"span_id\":\"92b0e5cabe1ec98c\",\"parent_span_id\":\"98796e9d5aac59ba\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + and browse recipes in the database.\",\"llm.request.functions.0.name\":\"search_recipes\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"query\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Search + term to filter recipes (optional)\\\", \\\"title\\\": \\\"Query\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"title\\\": \\\"search_recipes_args\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": [\\\"query\\\"]}\",\"llm.request.functions.1.description\":\"Plan + modifications to a recipe based on user request and apply them.\",\"llm.request.functions.1.name\":\"plan_and_apply_recipe_modifications\",\"llm.request.functions.1.parameters\":\"{\\\"$defs\\\": + {\\\"Recipe\\\": {\\\"properties\\\": {\\\"id\\\": {\\\"title\\\": \\\"Id\\\", + \\\"type\\\": \\\"string\\\"}, \\\"name\\\": {\\\"title\\\": \\\"Name\\\", + \\\"type\\\": \\\"string\\\"}, \\\"ingredients\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Ingredients\\\", \\\"type\\\": \\\"array\\\"}, + \\\"instructions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": + \\\"Instructions\\\", \\\"type\\\": \\\"array\\\"}, \\\"prep_time\\\": {\\\"title\\\": + \\\"Prep Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"cook_time\\\": {\\\"title\\\": + \\\"Cook Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"servings\\\": {\\\"title\\\": + \\\"Servings\\\", \\\"type\\\": \\\"integer\\\"}}, \\\"required\\\": [\\\"id\\\", + \\\"name\\\", \\\"ingredients\\\", \\\"instructions\\\", \\\"prep_time\\\", + \\\"cook_time\\\", \\\"servings\\\"], \\\"title\\\": \\\"Recipe\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false}}, \\\"properties\\\": + {\\\"recipe\\\": {\\\"$ref\\\": \\\"#/$defs/Recipe\\\"}, \\\"modification_request\\\": + {\\\"description\\\": \\\"Description of the desired changes\\\", \\\"title\\\": + \\\"Modification Request\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"recipe\\\", \\\"modification_request\\\"], \\\"title\\\": \\\"plan_and_apply_recipe_modifications_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"18\",\"llm.usage.prompt_tokens\":\"480\",\"llm.usage.total_tokens\":\"498\",\"llm.vendor\":\"openai\"},\"duration\":2574,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Suggest + a easy recipe using beans.\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"query\\\":\\\"easy + bean recipe\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_hmdTUoebIMnu7eCAlWdXh3RB\",\"llm.completions.0.tool_calls.0.name\":\"search_recipes\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641808658,\"trace_id\":\"862bb246ff5863b395d03ec5498ebb3b\",\"span_id\":\"98796e9d5aac59ba\",\"parent_span_id\":\"619fdd77f34264b2\",\"trace_state\":\"\",\"span_name\":\"Recipe + Editor Agent.agent\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"agent\"},\"duration\":12217,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641808657,\"trace_id\":\"862bb246ff5863b395d03ec5498ebb3b\",\"span_id\":\"9d21fba405112390\",\"parent_span_id\":\"50e984b24aca0983\",\"trace_state\":\"\",\"span_name\":\"Main + Chat Agent \u2192 unknown.handoff\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Main + Chat Agent\",\"llm.handoff.from_agent\":\"Main Chat Agent\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"handoff\"},\"duration\":0,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641811247,\"trace_id\":\"862bb246ff5863b395d03ec5498ebb3b\",\"span_id\":\"00a30aa405e2dc57\",\"parent_span_id\":\"11150e3f443324ef\",\"trace_state\":\"\",\"span_name\":\"openai.chat\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai.v1\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.headers\":\"None\",\"llm.is_streaming\":\"false\",\"llm.openai.api_base\":\"https://api.openai.com/v1/\",\"llm.openai.system_fingerprint\":\"fp_560af6e559\",\"llm.request.max_tokens\":\"500\",\"llm.request.model\":\"gpt-4o-mini\",\"llm.request.temperature\":\"0.100000\",\"llm.request.type\":\"chat\",\"llm.response.id\":\"chatcmpl-CNBVUnZGCLOcxMoKm3Ft3pAmetiLl\",\"llm.response.model\":\"gpt-4o-mini-2024-07-18\",\"llm.usage.cache_read_input_tokens\":\"0\",\"llm.usage.completion_tokens\":\"32\",\"llm.usage.prompt_tokens\":\"738\",\"llm.usage.reasoning_tokens\":\"0\",\"llm.usage.total_tokens\":\"770\",\"llm.vendor\":\"openai\"},\"duration\":2060,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"You + are a helpful recipe search assistant that returns only valid JSON.\",\"llm.prompts.0.role\":\"system\",\"llm.prompts.1.content\":\"\\nYou + are a recipe search expert. Given a user's search query and a list of available + recipes,\\nidentify which recipes are most relevant to the user's request.\\n\\nUser's + search query: \\\"easy bean recipe\\\"\\n\\nAvailable recipes:\\n[\\n {\\n + \ \\\"id\\\": \\\"spaghetti_carbonara\\\",\\n \\\"name\\\": \\\"Spaghetti + Carbonara\\\",\\n \\\"ingredients\\\": [\\n \\\"400g spaghetti\\\",\\n + \ \\\"200g pancetta or guanciale\\\",\\n \\\"4 large eggs\\\",\\n + \ \\\"100g Pecorino Romano cheese, grated\\\",\\n \\\"2 cloves garlic\\\"\\n + \ ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n \\\"prep_time\\\": + \\\"10 minutes\\\",\\n \\\"cook_time\\\": \\\"15 minutes\\\",\\n \\\"servings\\\": + 4\\n },\\n {\\n \\\"id\\\": \\\"chicken_tikka_masala\\\",\\n \\\"name\\\": + \\\"Chicken Tikka Masala\\\",\\n \\\"ingredients\\\": [\\n \\\"500g + chicken breast, cubed\\\",\\n \\\"200ml plain yogurt\\\",\\n \\\"2 + tsp garam masala\\\",\\n \\\"1 tsp turmeric\\\",\\n \\\"1 onion, + diced\\\"\\n ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n \\\"prep_time\\\": + \\\"45 minutes\\\",\\n \\\"cook_time\\\": \\\"30 minutes\\\",\\n \\\"servings\\\": + 4\\n },\\n {\\n \\\"id\\\": \\\"chocolate_chip_cookies\\\",\\n \\\"name\\\": + \\\"Classic Chocolate Chip Cookies\\\",\\n \\\"ingredients\\\": [\\n \\\"225g + butter, softened\\\",\\n \\\"200g brown sugar\\\",\\n \\\"100g white + sugar\\\",\\n \\\"2 large eggs\\\",\\n \\\"1 tsp vanilla extract\\\"\\n + \ ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n \\\"prep_time\\\": + \\\"15 minutes\\\",\\n \\\"cook_time\\\": \\\"10 minutes\\\",\\n \\\"servings\\\": + 24\\n },\\n {\\n \\\"id\\\": \\\"beef_stir_fry\\\",\\n \\\"name\\\": + \\\"Beef and Vegetable Stir Fry\\\",\\n \\\"ingredients\\\": [\\n \\\"500g + beef sirloin, sliced thin\\\",\\n \\\"2 tbsp vegetable oil\\\",\\n \\\"1 + bell pepper, sliced\\\",\\n \\\"1 onion, sliced\\\",\\n \\\"200g + broccoli florets\\\"\\n ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n + \ \\\"prep_time\\\": \\\"15 minutes\\\",\\n \\\"cook_time\\\": \\\"8 + minutes\\\",\\n \\\"servings\\\": 4\\n },\\n {\\n \\\"id\\\": \\\"caesar_salad\\\",\\n + \ \\\"name\\\": \\\"Classic Caesar Salad\\\",\\n \\\"ingredients\\\": + [\\n \\\"2 heads romaine lettuce, chopped\\\",\\n \\\"1/2 cup mayonnaise\\\",\\n + \ \\\"2 tbsp lemon juice\\\",\\n \\\"2 cloves garlic, minced\\\",\\n + \ \\\"1 tsp Dijon mustard\\\"\\n ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n + \ \\\"prep_time\\\": \\\"15 minutes\\\",\\n \\\"cook_time\\\": \\\"0 + minutes\\\",\\n \\\"servings\\\": 4\\n }\\n]\\n\\nPlease analyze the query + and return a JSON response with the following format:\\n{\\n \\\"relevant_recipe_ids\\\": + [\\\"recipe_id1\\\", \\\"recipe_id2\\\", ...],\\n \\\"reasoning\\\": \\\"Brief + explanation of why these recipes match the query\\\"\\n}\\n\\nConsider:\\n- + Ingredient matches (exact or similar)\\n- Cuisine type preferences\\n- Cooking + method preferences\\n- Dietary restrictions (vegetarian, vegan, gluten-free, + etc.)\\n- Meal type (breakfast, lunch, dinner, dessert)\\n- Difficulty level + or time preferences\\n- Flavor profiles (spicy, sweet, savory, etc.)\\n\\nReturn + only the JSON response, no additional text.\\n\",\"llm.prompts.1.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"{\\n + \ \\\"relevant_recipe_ids\\\": [],\\n \\\"reasoning\\\": \\\"No available + recipes contain beans or match the user's request for an easy bean recipe.\\\"\\n}\",\"llm.completions.0.finish_reason\":\"stop\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641811235,\"trace_id\":\"862bb246ff5863b395d03ec5498ebb3b\",\"span_id\":\"11150e3f443324ef\",\"parent_span_id\":\"98796e9d5aac59ba\",\"trace_state\":\"\",\"span_name\":\"search_recipes.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.tool.name\":\"search_recipes\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":2073,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"search_recipes\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641813309,\"trace_id\":\"862bb246ff5863b395d03ec5498ebb3b\",\"span_id\":\"4c005cb848a36338\",\"parent_span_id\":\"98796e9d5aac59ba\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + and browse recipes in the database.\",\"llm.request.functions.0.name\":\"search_recipes\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"query\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Search + term to filter recipes (optional)\\\", \\\"title\\\": \\\"Query\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"title\\\": \\\"search_recipes_args\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": [\\\"query\\\"]}\",\"llm.request.functions.1.description\":\"Plan + modifications to a recipe based on user request and apply them.\",\"llm.request.functions.1.name\":\"plan_and_apply_recipe_modifications\",\"llm.request.functions.1.parameters\":\"{\\\"$defs\\\": + {\\\"Recipe\\\": {\\\"properties\\\": {\\\"id\\\": {\\\"title\\\": \\\"Id\\\", + \\\"type\\\": \\\"string\\\"}, \\\"name\\\": {\\\"title\\\": \\\"Name\\\", + \\\"type\\\": \\\"string\\\"}, \\\"ingredients\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Ingredients\\\", \\\"type\\\": \\\"array\\\"}, + \\\"instructions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": + \\\"Instructions\\\", \\\"type\\\": \\\"array\\\"}, \\\"prep_time\\\": {\\\"title\\\": + \\\"Prep Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"cook_time\\\": {\\\"title\\\": + \\\"Cook Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"servings\\\": {\\\"title\\\": + \\\"Servings\\\", \\\"type\\\": \\\"integer\\\"}}, \\\"required\\\": [\\\"id\\\", + \\\"name\\\", \\\"ingredients\\\", \\\"instructions\\\", \\\"prep_time\\\", + \\\"cook_time\\\", \\\"servings\\\"], \\\"title\\\": \\\"Recipe\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false}}, \\\"properties\\\": + {\\\"recipe\\\": {\\\"$ref\\\": \\\"#/$defs/Recipe\\\"}, \\\"modification_request\\\": + {\\\"description\\\": \\\"Description of the desired changes\\\", \\\"title\\\": + \\\"Modification Request\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"recipe\\\", \\\"modification_request\\\"], \\\"title\\\": \\\"plan_and_apply_recipe_modifications_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"233\",\"llm.usage.prompt_tokens\":\"553\",\"llm.usage.total_tokens\":\"786\",\"llm.vendor\":\"openai\"},\"duration\":7564,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Suggest + a easy recipe using beans.\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"It + seems that I couldn't find a pre-existing recipe specifically for an easy + bean dish. However, I can suggest a simple recipe for you:\\n\\n### Easy Bean + Salad\\n\\n#### Ingredients:\\n- 1 can (15 oz) of mixed beans, drained and + rinsed\\n- 1/4 cup of diced red onion\\n- 1/2 cup of chopped cucumber\\n- + 1/2 cup of cherry tomatoes, halved\\n- 2 tablespoons of olive oil\\n- 1 tablespoon + of lemon juice\\n- Salt and pepper to taste\\n- Optional: chopped fresh parsley + or cilantro\\n\\n#### Instructions:\\n1. Combine the beans, red onion, cucumber, + and cherry tomatoes in a large bowl.\\n2. Drizzle with olive oil and lemon + juice.\\n3. Season with salt and pepper, and toss everything together.\\n4. + Garnish with fresh parsley or cilantro if desired.\\n5. Serve immediately + or refrigerate for an hour to let the flavors meld.\\n\\nThis salad is refreshing, + nutritious, and can be prepared in just a few minutes. Feel free to adjust + the vegetables based on what's available or add some feta cheese for extra + flavor. Enjoy!\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641821886,\"trace_id\":\"55c1042da3f3cd03c46329868dac2d17\",\"span_id\":\"2b31a9ee37f6a4cd\",\"parent_span_id\":\"522c24f5729d0055\",\"trace_state\":\"\",\"span_name\":\"Main + Chat Agent.agent\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Main + Chat Agent\",\"llm.vendor\":\"openai_agents\",\"openai.agent.handoff0\":\"{\\\"name\\\": + \\\"unknown\\\", \\\"instructions\\\": \\\"No instructions\\\"}\",\"traceloop.span.kind\":\"agent\"},\"duration\":1586,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641821885,\"trace_id\":\"55c1042da3f3cd03c46329868dac2d17\",\"span_id\":\"522c24f5729d0055\",\"parent_span_id\":\"\",\"trace_state\":\"\",\"span_name\":\"Agent + Workflow\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.vendor\":\"openai_agents\",\"llm.workflow.name\":\"Agent + Workflow\",\"traceloop.span.kind\":\"workflow\"},\"duration\":24027,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641821887,\"trace_id\":\"55c1042da3f3cd03c46329868dac2d17\",\"span_id\":\"f276fd8e9e9e61bd\",\"parent_span_id\":\"2b31a9ee37f6a4cd\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Main + Chat Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Handoff + to the Recipe Editor Agent agent to handle the request. \",\"llm.request.functions.0.name\":\"transfer_to_recipe_editor_agent\",\"llm.request.functions.0.parameters\":\"{\\\"additionalProperties\\\": + false, \\\"type\\\": \\\"object\\\", \\\"properties\\\": {}, \\\"required\\\": + []}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"14\",\"llm.usage.prompt_tokens\":\"227\",\"llm.usage.total_tokens\":\"241\",\"llm.vendor\":\"openai\"},\"duration\":1584,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Can + you recommend a vegan version of beef stir fry?\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{}\",\"llm.completions.0.tool_calls.0.id\":\"call_ZeYfj9dNHSBuKWMweWfgNeGa\",\"llm.completions.0.tool_calls.0.name\":\"transfer_to_recipe_editor_agent\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641823473,\"trace_id\":\"55c1042da3f3cd03c46329868dac2d17\",\"span_id\":\"bfc9e674dc7d6f42\",\"parent_span_id\":\"522c24f5729d0055\",\"trace_state\":\"\",\"span_name\":\"Recipe + Editor Agent.agent\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"agent\"},\"duration\":22439,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641823473,\"trace_id\":\"55c1042da3f3cd03c46329868dac2d17\",\"span_id\":\"caa9ca8621ab408d\",\"parent_span_id\":\"bfc9e674dc7d6f42\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + and browse recipes in the database.\",\"llm.request.functions.0.name\":\"search_recipes\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"query\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Search + term to filter recipes (optional)\\\", \\\"title\\\": \\\"Query\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"title\\\": \\\"search_recipes_args\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": [\\\"query\\\"]}\",\"llm.request.functions.1.description\":\"Plan + modifications to a recipe based on user request and apply them.\",\"llm.request.functions.1.name\":\"plan_and_apply_recipe_modifications\",\"llm.request.functions.1.parameters\":\"{\\\"$defs\\\": + {\\\"Recipe\\\": {\\\"properties\\\": {\\\"id\\\": {\\\"title\\\": \\\"Id\\\", + \\\"type\\\": \\\"string\\\"}, \\\"name\\\": {\\\"title\\\": \\\"Name\\\", + \\\"type\\\": \\\"string\\\"}, \\\"ingredients\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Ingredients\\\", \\\"type\\\": \\\"array\\\"}, + \\\"instructions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": + \\\"Instructions\\\", \\\"type\\\": \\\"array\\\"}, \\\"prep_time\\\": {\\\"title\\\": + \\\"Prep Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"cook_time\\\": {\\\"title\\\": + \\\"Cook Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"servings\\\": {\\\"title\\\": + \\\"Servings\\\", \\\"type\\\": \\\"integer\\\"}}, \\\"required\\\": [\\\"id\\\", + \\\"name\\\", \\\"ingredients\\\", \\\"instructions\\\", \\\"prep_time\\\", + \\\"cook_time\\\", \\\"servings\\\"], \\\"title\\\": \\\"Recipe\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false}}, \\\"properties\\\": + {\\\"recipe\\\": {\\\"$ref\\\": \\\"#/$defs/Recipe\\\"}, \\\"modification_request\\\": + {\\\"description\\\": \\\"Description of the desired changes\\\", \\\"title\\\": + \\\"Modification Request\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"recipe\\\", \\\"modification_request\\\"], \\\"title\\\": \\\"plan_and_apply_recipe_modifications_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"19\",\"llm.usage.prompt_tokens\":\"484\",\"llm.usage.total_tokens\":\"503\",\"llm.vendor\":\"openai\"},\"duration\":1201,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Can + you recommend a vegan version of beef stir fry?\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"query\\\":\\\"beef + stir fry\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_pTzAS8tBpOMAKEHGQh09MXbu\",\"llm.completions.0.tool_calls.0.name\":\"search_recipes\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641823472,\"trace_id\":\"55c1042da3f3cd03c46329868dac2d17\",\"span_id\":\"d9ed550ff7b9d5c3\",\"parent_span_id\":\"2b31a9ee37f6a4cd\",\"trace_state\":\"\",\"span_name\":\"Main + Chat Agent \u2192 unknown.handoff\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Main + Chat Agent\",\"llm.handoff.from_agent\":\"Main Chat Agent\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"handoff\"},\"duration\":0,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641824675,\"trace_id\":\"55c1042da3f3cd03c46329868dac2d17\",\"span_id\":\"55917e76d7782477\",\"parent_span_id\":\"bfc9e674dc7d6f42\",\"trace_state\":\"\",\"span_name\":\"search_recipes.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.tool.name\":\"search_recipes\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":2810,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"search_recipes\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641824689,\"trace_id\":\"55c1042da3f3cd03c46329868dac2d17\",\"span_id\":\"c889d7a7a3553c9e\",\"parent_span_id\":\"55917e76d7782477\",\"trace_state\":\"\",\"span_name\":\"openai.chat\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai.v1\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.headers\":\"None\",\"llm.is_streaming\":\"false\",\"llm.openai.api_base\":\"https://api.openai.com/v1/\",\"llm.openai.system_fingerprint\":\"fp_51db84afab\",\"llm.request.max_tokens\":\"500\",\"llm.request.model\":\"gpt-4o-mini\",\"llm.request.temperature\":\"0.100000\",\"llm.request.type\":\"chat\",\"llm.response.id\":\"chatcmpl-CNBVhcdZ521WOeJ0vz9BILpUujTcm\",\"llm.response.model\":\"gpt-4o-mini-2024-07-18\",\"llm.usage.cache_read_input_tokens\":\"0\",\"llm.usage.completion_tokens\":\"63\",\"llm.usage.prompt_tokens\":\"739\",\"llm.usage.reasoning_tokens\":\"0\",\"llm.usage.total_tokens\":\"802\",\"llm.vendor\":\"openai\"},\"duration\":2797,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"You + are a helpful recipe search assistant that returns only valid JSON.\",\"llm.prompts.0.role\":\"system\",\"llm.prompts.1.content\":\"\\nYou + are a recipe search expert. Given a user's search query and a list of available + recipes,\\nidentify which recipes are most relevant to the user's request.\\n\\nUser's + search query: \\\"beef stir fry\\\"\\n\\nAvailable recipes:\\n[\\n {\\n \\\"id\\\": + \\\"spaghetti_carbonara\\\",\\n \\\"name\\\": \\\"Spaghetti Carbonara\\\",\\n + \ \\\"ingredients\\\": [\\n \\\"400g spaghetti\\\",\\n \\\"200g + pancetta or guanciale\\\",\\n \\\"4 large eggs\\\",\\n \\\"100g + Pecorino Romano cheese, grated\\\",\\n \\\"2 cloves garlic\\\"\\n ],\\n + \ \\\"cuisine_type\\\": \\\"various\\\",\\n \\\"prep_time\\\": \\\"10 + minutes\\\",\\n \\\"cook_time\\\": \\\"15 minutes\\\",\\n \\\"servings\\\": + 4\\n },\\n {\\n \\\"id\\\": \\\"chicken_tikka_masala\\\",\\n \\\"name\\\": + \\\"Chicken Tikka Masala\\\",\\n \\\"ingredients\\\": [\\n \\\"500g + chicken breast, cubed\\\",\\n \\\"200ml plain yogurt\\\",\\n \\\"2 + tsp garam masala\\\",\\n \\\"1 tsp turmeric\\\",\\n \\\"1 onion, + diced\\\"\\n ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n \\\"prep_time\\\": + \\\"45 minutes\\\",\\n \\\"cook_time\\\": \\\"30 minutes\\\",\\n \\\"servings\\\": + 4\\n },\\n {\\n \\\"id\\\": \\\"chocolate_chip_cookies\\\",\\n \\\"name\\\": + \\\"Classic Chocolate Chip Cookies\\\",\\n \\\"ingredients\\\": [\\n \\\"225g + butter, softened\\\",\\n \\\"200g brown sugar\\\",\\n \\\"100g white + sugar\\\",\\n \\\"2 large eggs\\\",\\n \\\"1 tsp vanilla extract\\\"\\n + \ ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n \\\"prep_time\\\": + \\\"15 minutes\\\",\\n \\\"cook_time\\\": \\\"10 minutes\\\",\\n \\\"servings\\\": + 24\\n },\\n {\\n \\\"id\\\": \\\"beef_stir_fry\\\",\\n \\\"name\\\": + \\\"Beef and Vegetable Stir Fry\\\",\\n \\\"ingredients\\\": [\\n \\\"500g + beef sirloin, sliced thin\\\",\\n \\\"2 tbsp vegetable oil\\\",\\n \\\"1 + bell pepper, sliced\\\",\\n \\\"1 onion, sliced\\\",\\n \\\"200g + broccoli florets\\\"\\n ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n + \ \\\"prep_time\\\": \\\"15 minutes\\\",\\n \\\"cook_time\\\": \\\"8 + minutes\\\",\\n \\\"servings\\\": 4\\n },\\n {\\n \\\"id\\\": \\\"caesar_salad\\\",\\n + \ \\\"name\\\": \\\"Classic Caesar Salad\\\",\\n \\\"ingredients\\\": + [\\n \\\"2 heads romaine lettuce, chopped\\\",\\n \\\"1/2 cup mayonnaise\\\",\\n + \ \\\"2 tbsp lemon juice\\\",\\n \\\"2 cloves garlic, minced\\\",\\n + \ \\\"1 tsp Dijon mustard\\\"\\n ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n + \ \\\"prep_time\\\": \\\"15 minutes\\\",\\n \\\"cook_time\\\": \\\"0 + minutes\\\",\\n \\\"servings\\\": 4\\n }\\n]\\n\\nPlease analyze the query + and return a JSON response with the following format:\\n{\\n \\\"relevant_recipe_ids\\\": + [\\\"recipe_id1\\\", \\\"recipe_id2\\\", ...],\\n \\\"reasoning\\\": \\\"Brief + explanation of why these recipes match the query\\\"\\n}\\n\\nConsider:\\n- + Ingredient matches (exact or similar)\\n- Cuisine type preferences\\n- Cooking + method preferences\\n- Dietary restrictions (vegetarian, vegan, gluten-free, + etc.)\\n- Meal type (breakfast, lunch, dinner, dessert)\\n- Difficulty level + or time preferences\\n- Flavor profiles (spicy, sweet, savory, etc.)\\n\\nReturn + only the JSON response, no additional text.\\n\",\"llm.prompts.1.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"{\\n + \ \\\"relevant_recipe_ids\\\": [\\\"beef_stir_fry\\\"],\\n \\\"reasoning\\\": + \\\"The recipe 'Beef and Vegetable Stir Fry' directly matches the user's query + for 'beef stir fry' as it includes beef as the main ingredient and is prepared + using a stir-frying method.\\\"\\n}\",\"llm.completions.0.finish_reason\":\"stop\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641827487,\"trace_id\":\"55c1042da3f3cd03c46329868dac2d17\",\"span_id\":\"0932aaa631d44f75\",\"parent_span_id\":\"bfc9e674dc7d6f42\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + and browse recipes in the database.\",\"llm.request.functions.0.name\":\"search_recipes\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"query\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Search + term to filter recipes (optional)\\\", \\\"title\\\": \\\"Query\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"title\\\": \\\"search_recipes_args\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": [\\\"query\\\"]}\",\"llm.request.functions.1.description\":\"Plan + modifications to a recipe based on user request and apply them.\",\"llm.request.functions.1.name\":\"plan_and_apply_recipe_modifications\",\"llm.request.functions.1.parameters\":\"{\\\"$defs\\\": + {\\\"Recipe\\\": {\\\"properties\\\": {\\\"id\\\": {\\\"title\\\": \\\"Id\\\", + \\\"type\\\": \\\"string\\\"}, \\\"name\\\": {\\\"title\\\": \\\"Name\\\", + \\\"type\\\": \\\"string\\\"}, \\\"ingredients\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Ingredients\\\", \\\"type\\\": \\\"array\\\"}, + \\\"instructions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": + \\\"Instructions\\\", \\\"type\\\": \\\"array\\\"}, \\\"prep_time\\\": {\\\"title\\\": + \\\"Prep Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"cook_time\\\": {\\\"title\\\": + \\\"Cook Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"servings\\\": {\\\"title\\\": + \\\"Servings\\\", \\\"type\\\": \\\"integer\\\"}}, \\\"required\\\": [\\\"id\\\", + \\\"name\\\", \\\"ingredients\\\", \\\"instructions\\\", \\\"prep_time\\\", + \\\"cook_time\\\", \\\"servings\\\"], \\\"title\\\": \\\"Recipe\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false}}, \\\"properties\\\": + {\\\"recipe\\\": {\\\"$ref\\\": \\\"#/$defs/Recipe\\\"}, \\\"modification_request\\\": + {\\\"description\\\": \\\"Description of the desired changes\\\", \\\"title\\\": + \\\"Modification Request\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"recipe\\\", \\\"modification_request\\\"], \\\"title\\\": \\\"plan_and_apply_recipe_modifications_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"245\",\"llm.usage.prompt_tokens\":\"822\",\"llm.usage.total_tokens\":\"1067\",\"llm.vendor\":\"openai\"},\"duration\":3568,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Can + you recommend a vegan version of beef stir fry?\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"recipe\\\":{\\\"id\\\":\\\"beef_stir_fry\\\",\\\"name\\\":\\\"Beef + and Vegetable Stir Fry\\\",\\\"ingredients\\\":[\\\"500g beef sirloin, sliced + thin\\\",\\\"2 tbsp vegetable oil\\\",\\\"1 bell pepper, sliced\\\",\\\"1 + onion, sliced\\\",\\\"200g broccoli florets\\\",\\\"2 carrots, sliced\\\",\\\"3 + cloves garlic, minced\\\",\\\"2 tbsp soy sauce\\\",\\\"1 tbsp oyster sauce\\\",\\\"1 + tsp sesame oil\\\",\\\"1 tsp cornstarch\\\",\\\"2 tbsp water\\\",\\\"Green + onions for garnish\\\"],\\\"instructions\\\":[\\\"Heat wok or large pan over + high heat\\\",\\\"Add oil and beef, stir-fry for 2-3 minutes\\\",\\\"Remove + beef and set aside\\\",\\\"Add vegetables to pan, stir-fry for 3-4 minutes\\\",\\\"Add + garlic and cook for 30 seconds\\\",\\\"Return beef to pan\\\",\\\"Mix soy + sauce, oyster sauce, sesame oil, cornstarch and water\\\",\\\"Add sauce to + pan, stir for 1 minute until thickened\\\",\\\"Garnish with green onions and + serve with rice\\\"],\\\"prep_time\\\":\\\"15 minutes\\\",\\\"cook_time\\\":\\\"8 + minutes\\\",\\\"servings\\\":4},\\\"modification_request\\\":\\\"Create a + vegan version of this stir fry recipe.\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_M6WnWsUvmTWk2suNqLJ3vV6N\",\"llm.completions.0.tool_calls.0.name\":\"plan_and_apply_recipe_modifications\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641831069,\"trace_id\":\"55c1042da3f3cd03c46329868dac2d17\",\"span_id\":\"c3a2d090c61f966a\",\"parent_span_id\":\"e1172324e3a2f4e7\",\"trace_state\":\"\",\"span_name\":\"openai.chat\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai.v1\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.headers\":\"None\",\"llm.is_streaming\":\"false\",\"llm.openai.api_base\":\"https://api.openai.com/v1/\",\"llm.openai.system_fingerprint\":\"fp_560af6e559\",\"llm.request.max_tokens\":\"1500\",\"llm.request.model\":\"gpt-4o-mini\",\"llm.request.structured_output_schema\":\"{\\\"$defs\\\": + {\\\"ModifiedRecipeData\\\": {\\\"properties\\\": {\\\"id\\\": {\\\"title\\\": + \\\"Id\\\", \\\"type\\\": \\\"string\\\"}, \\\"name\\\": {\\\"title\\\": \\\"Name\\\", + \\\"type\\\": \\\"string\\\"}, \\\"ingredients\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Ingredients\\\", \\\"type\\\": \\\"array\\\"}, + \\\"instructions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": + \\\"Instructions\\\", \\\"type\\\": \\\"array\\\"}, \\\"prep_time\\\": {\\\"title\\\": + \\\"Prep Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"cook_time\\\": {\\\"title\\\": + \\\"Cook Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"servings\\\": {\\\"title\\\": + \\\"Servings\\\", \\\"type\\\": \\\"integer\\\"}}, \\\"required\\\": [\\\"id\\\", + \\\"name\\\", \\\"ingredients\\\", \\\"instructions\\\", \\\"prep_time\\\", + \\\"cook_time\\\", \\\"servings\\\"], \\\"title\\\": \\\"ModifiedRecipeData\\\", + \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": {\\\"modified_recipe\\\": + {\\\"$ref\\\": \\\"#/$defs/ModifiedRecipeData\\\"}, \\\"changes_made\\\": + {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Changes + Made\\\", \\\"type\\\": \\\"array\\\"}, \\\"modification_reasoning\\\": {\\\"title\\\": + \\\"Modification Reasoning\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"modified_recipe\\\", \\\"changes_made\\\", \\\"modification_reasoning\\\"], + \\\"title\\\": \\\"RecipeModificationResult\\\", \\\"type\\\": \\\"object\\\"}\",\"llm.request.temperature\":\"0.300000\",\"llm.request.type\":\"chat\",\"llm.response.id\":\"chatcmpl-CNBVoW1woJI2k7WQYltvtp43LaOqE\",\"llm.response.model\":\"gpt-4o-mini-2024-07-18\",\"llm.usage.cache_read_input_tokens\":\"0\",\"llm.usage.completion_tokens\":\"371\",\"llm.usage.prompt_tokens\":\"653\",\"llm.usage.reasoning_tokens\":\"0\",\"llm.usage.total_tokens\":\"1024\",\"llm.vendor\":\"openai\"},\"duration\":8363,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"You + are an expert chef and recipe developer who modifies recipes based on user + requests.\",\"llm.prompts.0.role\":\"system\",\"llm.prompts.1.content\":\"\\nYou + are an expert chef and recipe developer. You need to modify an existing recipe + based on a user's request.\\n\\nOriginal Recipe:\\nName: Beef and Vegetable + Stir Fry\\nIngredients: [\\n \\\"500g beef sirloin, sliced thin\\\",\\n \\\"2 + tbsp vegetable oil\\\",\\n \\\"1 bell pepper, sliced\\\",\\n \\\"1 onion, + sliced\\\",\\n \\\"200g broccoli florets\\\",\\n \\\"2 carrots, sliced\\\",\\n + \ \\\"3 cloves garlic, minced\\\",\\n \\\"2 tbsp soy sauce\\\",\\n \\\"1 + tbsp oyster sauce\\\",\\n \\\"1 tsp sesame oil\\\",\\n \\\"1 tsp cornstarch\\\",\\n + \ \\\"2 tbsp water\\\",\\n \\\"Green onions for garnish\\\"\\n]\\nInstructions: + [\\n \\\"Heat wok or large pan over high heat\\\",\\n \\\"Add oil and beef, + stir-fry for 2-3 minutes\\\",\\n \\\"Remove beef and set aside\\\",\\n \\\"Add + vegetables to pan, stir-fry for 3-4 minutes\\\",\\n \\\"Add garlic and cook + for 30 seconds\\\",\\n \\\"Return beef to pan\\\",\\n \\\"Mix soy sauce, + oyster sauce, sesame oil, cornstarch and water\\\",\\n \\\"Add sauce to pan, + stir for 1 minute until thickened\\\",\\n \\\"Garnish with green onions and + serve with rice\\\"\\n]\\nPrep Time: 15 minutes\\nCook Time: 8 minutes\\nServings: + 4\\n\\nUser's Modification Request: \\\"Create a vegan version of this stir + fry recipe.\\\"\\n\\nPlease create a modified version of this recipe that + incorporates the user's request. Consider:\\n- Ingredient substitutions (vegetarian/vegan, + gluten-free, allergies, etc.)\\n- Scaling (doubling, halving, different serving + sizes)\\n- Cooking method changes (faster, slower, different techniques)\\n- + Flavor modifications (spicier, less salty, sweeter, etc.)\\n- Dietary restrictions + and preferences\\n- Seasonal ingredient swaps\\n- Nutritional improvements\\n\\nMake + sure all ingredients have proper quantities and units. Keep the essence of + the original recipe while making\\nthe requested modifications. Be creative + but practical.\\n\\nProvide a clear list of what changes you made and explain + your reasoning for the modifications.\\n\",\"llm.prompts.1.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"{\\\"modified_recipe\\\":{\\\"id\\\":\\\"vegan-beef-vegetable-stir-fry\\\",\\\"name\\\":\\\"Vegan + Vegetable Stir Fry\\\",\\\"ingredients\\\":[\\\"500g firm tofu, pressed and + cubed\\\",\\\"2 tbsp vegetable oil\\\",\\\"1 bell pepper, sliced\\\",\\\"1 + onion, sliced\\\",\\\"200g broccoli florets\\\",\\\"2 carrots, sliced\\\",\\\"3 + cloves garlic, minced\\\",\\\"2 tbsp soy sauce (or tamari for gluten-free)\\\",\\\"1 + tbsp hoisin sauce\\\",\\\"1 tsp sesame oil\\\",\\\"1 tsp cornstarch\\\",\\\"2 + tbsp water\\\",\\\"Green onions for garnish\\\"],\\\"instructions\\\":[\\\"Heat + wok or large pan over high heat\\\",\\\"Add oil and tofu, stir-fry for 5-7 + minutes until golden brown\\\",\\\"Remove tofu and set aside\\\",\\\"Add vegetables + to pan, stir-fry for 3-4 minutes\\\",\\\"Add garlic and cook for 30 seconds\\\",\\\"Return + tofu to pan\\\",\\\"Mix soy sauce, hoisin sauce, sesame oil, cornstarch and + water\\\",\\\"Add sauce to pan, stir for 1 minute until thickened\\\",\\\"Garnish + with green onions and serve with rice\\\"],\\\"prep_time\\\":\\\"15 minutes\\\",\\\"cook_time\\\":\\\"10 + minutes\\\",\\\"servings\\\":4},\\\"changes_made\\\":[\\\"Replaced beef sirloin + with firm tofu to create a vegan protein source.\\\",\\\"Substituted oyster + sauce with hoisin sauce for a vegan-friendly option.\\\",\\\"Adjusted cooking + time for tofu to ensure it is cooked properly and achieves a golden color.\\\"],\\\"modification_reasoning\\\":\\\"The + user requested a vegan version of the stir fry, so I replaced the beef with + firm tofu, which provides a good source of protein and maintains the texture + needed for a stir fry. I also substituted oyster sauce with hoisin sauce to + keep the dish flavorful while ensuring it remains vegan. The cooking method + was slightly adjusted to accommodate the tofu, allowing it to brown properly + before adding the vegetables.\\\"}\",\"llm.completions.0.finish_reason\":\"stop\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641831056,\"trace_id\":\"55c1042da3f3cd03c46329868dac2d17\",\"span_id\":\"e1172324e3a2f4e7\",\"parent_span_id\":\"bfc9e674dc7d6f42\",\"trace_state\":\"\",\"span_name\":\"plan_and_apply_recipe_modifications.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.tool.name\":\"plan_and_apply_recipe_modifications\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":8377,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"plan_and_apply_recipe_modifications\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641839434,\"trace_id\":\"55c1042da3f3cd03c46329868dac2d17\",\"span_id\":\"861684e12f27ffd0\",\"parent_span_id\":\"bfc9e674dc7d6f42\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + and browse recipes in the database.\",\"llm.request.functions.0.name\":\"search_recipes\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"query\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Search + term to filter recipes (optional)\\\", \\\"title\\\": \\\"Query\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"title\\\": \\\"search_recipes_args\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": [\\\"query\\\"]}\",\"llm.request.functions.1.description\":\"Plan + modifications to a recipe based on user request and apply them.\",\"llm.request.functions.1.name\":\"plan_and_apply_recipe_modifications\",\"llm.request.functions.1.parameters\":\"{\\\"$defs\\\": + {\\\"Recipe\\\": {\\\"properties\\\": {\\\"id\\\": {\\\"title\\\": \\\"Id\\\", + \\\"type\\\": \\\"string\\\"}, \\\"name\\\": {\\\"title\\\": \\\"Name\\\", + \\\"type\\\": \\\"string\\\"}, \\\"ingredients\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Ingredients\\\", \\\"type\\\": \\\"array\\\"}, + \\\"instructions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": + \\\"Instructions\\\", \\\"type\\\": \\\"array\\\"}, \\\"prep_time\\\": {\\\"title\\\": + \\\"Prep Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"cook_time\\\": {\\\"title\\\": + \\\"Cook Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"servings\\\": {\\\"title\\\": + \\\"Servings\\\", \\\"type\\\": \\\"integer\\\"}}, \\\"required\\\": [\\\"id\\\", + \\\"name\\\", \\\"ingredients\\\", \\\"instructions\\\", \\\"prep_time\\\", + \\\"cook_time\\\", \\\"servings\\\"], \\\"title\\\": \\\"Recipe\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false}}, \\\"properties\\\": + {\\\"recipe\\\": {\\\"$ref\\\": \\\"#/$defs/Recipe\\\"}, \\\"modification_request\\\": + {\\\"description\\\": \\\"Description of the desired changes\\\", \\\"title\\\": + \\\"Modification Request\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"recipe\\\", \\\"modification_request\\\"], \\\"title\\\": \\\"plan_and_apply_recipe_modifications_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"373\",\"llm.usage.prompt_tokens\":\"1710\",\"llm.usage.total_tokens\":\"2083\",\"llm.vendor\":\"openai\"},\"duration\":6477,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Can + you recommend a vegan version of beef stir fry?\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"Here's + a vegan version of the traditional beef stir fry, now called **Vegan Vegetable + Stir Fry**:\\n\\n### Ingredients:\\n- 500g firm tofu, pressed and cubed\\n- + 2 tbsp vegetable oil\\n- 1 bell pepper, sliced\\n- 1 onion, sliced\\n- 200g + broccoli florets\\n- 2 carrots, sliced\\n- 3 cloves garlic, minced\\n- 2 tbsp + soy sauce (or tamari for gluten-free)\\n- 1 tbsp hoisin sauce\\n- 1 tsp sesame + oil\\n- 1 tsp cornstarch\\n- 2 tbsp water\\n- Green onions for garnish\\n\\n### + Instructions:\\n1. **Heat** a wok or large pan over high heat.\\n2. **Add** + oil and tofu, stir-fry for 5-7 minutes until golden brown. Remove tofu and + set aside.\\n3. **Add** the vegetables to the pan, stir-fry for 3-4 minutes.\\n4. + **Add** garlic and cook for 30 seconds.\\n5. **Return** tofu to the pan.\\n6. + **Mix** soy sauce, hoisin sauce, sesame oil, cornstarch, and water.\\n7. **Add** + the sauce to the pan, stir for 1 minute until thickened.\\n8. **Garnish** + with green onions and serve with rice.\\n\\n### Changes Made:\\n- Replaced + beef with firm tofu for a vegan protein source.\\n- Substituted oyster sauce + with hoisin sauce to keep it vegan-friendly.\\n- Adjusted cooking time to + ensure the tofu achieves a golden color.\\n\\n### Cooking Tips:\\n- Ensure + the tofu is well-pressed to remove excess water before cooking; this helps + it crisp up.\\n- Customize your stir fry by adding other vegetables like mushrooms + or snap peas.\\n\\nEnjoy your vegan stir fry! \U0001F331\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641846922,\"trace_id\":\"8d802ad4d3948ea805d15a2037085db7\",\"span_id\":\"5e751de92673e2ce\",\"parent_span_id\":\"\",\"trace_state\":\"\",\"span_name\":\"Agent + Workflow\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.vendor\":\"openai_agents\",\"llm.workflow.name\":\"Agent + Workflow\",\"traceloop.span.kind\":\"workflow\"},\"duration\":13996,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641846922,\"trace_id\":\"8d802ad4d3948ea805d15a2037085db7\",\"span_id\":\"934783d1985190e7\",\"parent_span_id\":\"5e751de92673e2ce\",\"trace_state\":\"\",\"span_name\":\"Main + Chat Agent.agent\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Main + Chat Agent\",\"llm.vendor\":\"openai_agents\",\"openai.agent.handoff0\":\"{\\\"name\\\": + \\\"unknown\\\", \\\"instructions\\\": \\\"No instructions\\\"}\",\"traceloop.span.kind\":\"agent\"},\"duration\":1701,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641846923,\"trace_id\":\"8d802ad4d3948ea805d15a2037085db7\",\"span_id\":\"a59392eac423e9dd\",\"parent_span_id\":\"934783d1985190e7\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Main + Chat Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Handoff + to the Recipe Editor Agent agent to handle the request. \",\"llm.request.functions.0.name\":\"transfer_to_recipe_editor_agent\",\"llm.request.functions.0.parameters\":\"{\\\"additionalProperties\\\": + false, \\\"type\\\": \\\"object\\\", \\\"properties\\\": {}, \\\"required\\\": + []}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"14\",\"llm.usage.prompt_tokens\":\"226\",\"llm.usage.total_tokens\":\"240\",\"llm.vendor\":\"openai\"},\"duration\":1699,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Do + you know any recipes for a healthy snack?\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{}\",\"llm.completions.0.tool_calls.0.id\":\"call_LQTrOtGKfQkmCLtGx6FI8krZ\",\"llm.completions.0.tool_calls.0.name\":\"transfer_to_recipe_editor_agent\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641848624,\"trace_id\":\"8d802ad4d3948ea805d15a2037085db7\",\"span_id\":\"36e4da70bdc030f4\",\"parent_span_id\":\"934783d1985190e7\",\"trace_state\":\"\",\"span_name\":\"Main + Chat Agent \u2192 unknown.handoff\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Main + Chat Agent\",\"llm.handoff.from_agent\":\"Main Chat Agent\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"handoff\"},\"duration\":0,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641848624,\"trace_id\":\"8d802ad4d3948ea805d15a2037085db7\",\"span_id\":\"4c8fa1dde6aa5253\",\"parent_span_id\":\"5e751de92673e2ce\",\"trace_state\":\"\",\"span_name\":\"Recipe + Editor Agent.agent\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"agent\"},\"duration\":12293,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641848625,\"trace_id\":\"8d802ad4d3948ea805d15a2037085db7\",\"span_id\":\"52d25c4cf707e18b\",\"parent_span_id\":\"4c8fa1dde6aa5253\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + and browse recipes in the database.\",\"llm.request.functions.0.name\":\"search_recipes\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"query\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Search + term to filter recipes (optional)\\\", \\\"title\\\": \\\"Query\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"title\\\": \\\"search_recipes_args\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": [\\\"query\\\"]}\",\"llm.request.functions.1.description\":\"Plan + modifications to a recipe based on user request and apply them.\",\"llm.request.functions.1.name\":\"plan_and_apply_recipe_modifications\",\"llm.request.functions.1.parameters\":\"{\\\"$defs\\\": + {\\\"Recipe\\\": {\\\"properties\\\": {\\\"id\\\": {\\\"title\\\": \\\"Id\\\", + \\\"type\\\": \\\"string\\\"}, \\\"name\\\": {\\\"title\\\": \\\"Name\\\", + \\\"type\\\": \\\"string\\\"}, \\\"ingredients\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Ingredients\\\", \\\"type\\\": \\\"array\\\"}, + \\\"instructions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": + \\\"Instructions\\\", \\\"type\\\": \\\"array\\\"}, \\\"prep_time\\\": {\\\"title\\\": + \\\"Prep Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"cook_time\\\": {\\\"title\\\": + \\\"Cook Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"servings\\\": {\\\"title\\\": + \\\"Servings\\\", \\\"type\\\": \\\"integer\\\"}}, \\\"required\\\": [\\\"id\\\", + \\\"name\\\", \\\"ingredients\\\", \\\"instructions\\\", \\\"prep_time\\\", + \\\"cook_time\\\", \\\"servings\\\"], \\\"title\\\": \\\"Recipe\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false}}, \\\"properties\\\": + {\\\"recipe\\\": {\\\"$ref\\\": \\\"#/$defs/Recipe\\\"}, \\\"modification_request\\\": + {\\\"description\\\": \\\"Description of the desired changes\\\", \\\"title\\\": + \\\"Modification Request\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"recipe\\\", \\\"modification_request\\\"], \\\"title\\\": \\\"plan_and_apply_recipe_modifications_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"17\",\"llm.usage.prompt_tokens\":\"483\",\"llm.usage.total_tokens\":\"500\",\"llm.vendor\":\"openai\"},\"duration\":2330,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Do + you know any recipes for a healthy snack?\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"query\\\":\\\"healthy + snack\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_jC1hE6ySUzMRV2XQEeAJ12V9\",\"llm.completions.0.tool_calls.0.name\":\"search_recipes\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641850956,\"trace_id\":\"8d802ad4d3948ea805d15a2037085db7\",\"span_id\":\"48ba636bfd7b19ac\",\"parent_span_id\":\"4c8fa1dde6aa5253\",\"trace_state\":\"\",\"span_name\":\"search_recipes.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.tool.name\":\"search_recipes\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":2793,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"search_recipes\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641850970,\"trace_id\":\"8d802ad4d3948ea805d15a2037085db7\",\"span_id\":\"dc955ecbaf6445e0\",\"parent_span_id\":\"48ba636bfd7b19ac\",\"trace_state\":\"\",\"span_name\":\"openai.chat\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai.v1\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.headers\":\"None\",\"llm.is_streaming\":\"false\",\"llm.openai.api_base\":\"https://api.openai.com/v1/\",\"llm.openai.system_fingerprint\":\"fp_560af6e559\",\"llm.request.max_tokens\":\"500\",\"llm.request.model\":\"gpt-4o-mini\",\"llm.request.temperature\":\"0.100000\",\"llm.request.type\":\"chat\",\"llm.response.id\":\"chatcmpl-CNBW7vE9xXHOfZ03iexEufGeocF60\",\"llm.response.model\":\"gpt-4o-mini-2024-07-18\",\"llm.usage.cache_read_input_tokens\":\"0\",\"llm.usage.completion_tokens\":\"85\",\"llm.usage.prompt_tokens\":\"737\",\"llm.usage.reasoning_tokens\":\"0\",\"llm.usage.total_tokens\":\"822\",\"llm.vendor\":\"openai\"},\"duration\":2779,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"You + are a helpful recipe search assistant that returns only valid JSON.\",\"llm.prompts.0.role\":\"system\",\"llm.prompts.1.content\":\"\\nYou + are a recipe search expert. Given a user's search query and a list of available + recipes,\\nidentify which recipes are most relevant to the user's request.\\n\\nUser's + search query: \\\"healthy snack\\\"\\n\\nAvailable recipes:\\n[\\n {\\n \\\"id\\\": + \\\"spaghetti_carbonara\\\",\\n \\\"name\\\": \\\"Spaghetti Carbonara\\\",\\n + \ \\\"ingredients\\\": [\\n \\\"400g spaghetti\\\",\\n \\\"200g + pancetta or guanciale\\\",\\n \\\"4 large eggs\\\",\\n \\\"100g + Pecorino Romano cheese, grated\\\",\\n \\\"2 cloves garlic\\\"\\n ],\\n + \ \\\"cuisine_type\\\": \\\"various\\\",\\n \\\"prep_time\\\": \\\"10 + minutes\\\",\\n \\\"cook_time\\\": \\\"15 minutes\\\",\\n \\\"servings\\\": + 4\\n },\\n {\\n \\\"id\\\": \\\"chicken_tikka_masala\\\",\\n \\\"name\\\": + \\\"Chicken Tikka Masala\\\",\\n \\\"ingredients\\\": [\\n \\\"500g + chicken breast, cubed\\\",\\n \\\"200ml plain yogurt\\\",\\n \\\"2 + tsp garam masala\\\",\\n \\\"1 tsp turmeric\\\",\\n \\\"1 onion, + diced\\\"\\n ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n \\\"prep_time\\\": + \\\"45 minutes\\\",\\n \\\"cook_time\\\": \\\"30 minutes\\\",\\n \\\"servings\\\": + 4\\n },\\n {\\n \\\"id\\\": \\\"chocolate_chip_cookies\\\",\\n \\\"name\\\": + \\\"Classic Chocolate Chip Cookies\\\",\\n \\\"ingredients\\\": [\\n \\\"225g + butter, softened\\\",\\n \\\"200g brown sugar\\\",\\n \\\"100g white + sugar\\\",\\n \\\"2 large eggs\\\",\\n \\\"1 tsp vanilla extract\\\"\\n + \ ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n \\\"prep_time\\\": + \\\"15 minutes\\\",\\n \\\"cook_time\\\": \\\"10 minutes\\\",\\n \\\"servings\\\": + 24\\n },\\n {\\n \\\"id\\\": \\\"beef_stir_fry\\\",\\n \\\"name\\\": + \\\"Vegan Vegetable Stir Fry\\\",\\n \\\"ingredients\\\": [\\n \\\"500g + firm tofu, pressed and cubed\\\",\\n \\\"2 tbsp vegetable oil\\\",\\n + \ \\\"1 bell pepper, sliced\\\",\\n \\\"1 onion, sliced\\\",\\n \\\"200g + broccoli florets\\\"\\n ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n + \ \\\"prep_time\\\": \\\"15 minutes\\\",\\n \\\"cook_time\\\": \\\"10 + minutes\\\",\\n \\\"servings\\\": 4\\n },\\n {\\n \\\"id\\\": \\\"caesar_salad\\\",\\n + \ \\\"name\\\": \\\"Classic Caesar Salad\\\",\\n \\\"ingredients\\\": + [\\n \\\"2 heads romaine lettuce, chopped\\\",\\n \\\"1/2 cup mayonnaise\\\",\\n + \ \\\"2 tbsp lemon juice\\\",\\n \\\"2 cloves garlic, minced\\\",\\n + \ \\\"1 tsp Dijon mustard\\\"\\n ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n + \ \\\"prep_time\\\": \\\"15 minutes\\\",\\n \\\"cook_time\\\": \\\"0 + minutes\\\",\\n \\\"servings\\\": 4\\n }\\n]\\n\\nPlease analyze the query + and return a JSON response with the following format:\\n{\\n \\\"relevant_recipe_ids\\\": + [\\\"recipe_id1\\\", \\\"recipe_id2\\\", ...],\\n \\\"reasoning\\\": \\\"Brief + explanation of why these recipes match the query\\\"\\n}\\n\\nConsider:\\n- + Ingredient matches (exact or similar)\\n- Cuisine type preferences\\n- Cooking + method preferences\\n- Dietary restrictions (vegetarian, vegan, gluten-free, + etc.)\\n- Meal type (breakfast, lunch, dinner, dessert)\\n- Difficulty level + or time preferences\\n- Flavor profiles (spicy, sweet, savory, etc.)\\n\\nReturn + only the JSON response, no additional text.\\n\",\"llm.prompts.1.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"{\\n + \ \\\"relevant_recipe_ids\\\": [\\\"beef_stir_fry\\\", \\\"caesar_salad\\\"],\\n + \ \\\"reasoning\\\": \\\"Both recipes are healthy options. The Vegan Vegetable + Stir Fry is plant-based and low in calories, making it a great healthy snack. + The Classic Caesar Salad, while it contains mayonnaise, can be made healthier + by adjusting the ingredients, and it is a light option suitable for snacking.\\\"\\n}\",\"llm.completions.0.finish_reason\":\"stop\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641853751,\"trace_id\":\"8d802ad4d3948ea805d15a2037085db7\",\"span_id\":\"9002825e9892eeda\",\"parent_span_id\":\"4c8fa1dde6aa5253\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + and browse recipes in the database.\",\"llm.request.functions.0.name\":\"search_recipes\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"query\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Search + term to filter recipes (optional)\\\", \\\"title\\\": \\\"Query\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"title\\\": \\\"search_recipes_args\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": [\\\"query\\\"]}\",\"llm.request.functions.1.description\":\"Plan + modifications to a recipe based on user request and apply them.\",\"llm.request.functions.1.name\":\"plan_and_apply_recipe_modifications\",\"llm.request.functions.1.parameters\":\"{\\\"$defs\\\": + {\\\"Recipe\\\": {\\\"properties\\\": {\\\"id\\\": {\\\"title\\\": \\\"Id\\\", + \\\"type\\\": \\\"string\\\"}, \\\"name\\\": {\\\"title\\\": \\\"Name\\\", + \\\"type\\\": \\\"string\\\"}, \\\"ingredients\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Ingredients\\\", \\\"type\\\": \\\"array\\\"}, + \\\"instructions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": + \\\"Instructions\\\", \\\"type\\\": \\\"array\\\"}, \\\"prep_time\\\": {\\\"title\\\": + \\\"Prep Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"cook_time\\\": {\\\"title\\\": + \\\"Cook Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"servings\\\": {\\\"title\\\": + \\\"Servings\\\", \\\"type\\\": \\\"integer\\\"}}, \\\"required\\\": [\\\"id\\\", + \\\"name\\\", \\\"ingredients\\\", \\\"instructions\\\", \\\"prep_time\\\", + \\\"cook_time\\\", \\\"servings\\\"], \\\"title\\\": \\\"Recipe\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false}}, \\\"properties\\\": + {\\\"recipe\\\": {\\\"$ref\\\": \\\"#/$defs/Recipe\\\"}, \\\"modification_request\\\": + {\\\"description\\\": \\\"Description of the desired changes\\\", \\\"title\\\": + \\\"Modification Request\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"recipe\\\", \\\"modification_request\\\"], \\\"title\\\": \\\"plan_and_apply_recipe_modifications_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"529\",\"llm.usage.prompt_tokens\":\"1028\",\"llm.usage.total_tokens\":\"1557\",\"llm.vendor\":\"openai\"},\"duration\":7165,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Do + you know any recipes for a healthy snack?\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"Here + are two healthy snack recipes for you:\\n\\n1. **Vegan Vegetable Stir Fry**\\n + \ - **Ingredients:**\\n - 500g firm tofu, pressed and cubed\\n - + 2 tbsp vegetable oil\\n - 1 bell pepper, sliced\\n - 1 onion, sliced\\n + \ - 200g broccoli florets\\n - 2 carrots, sliced\\n - 3 cloves + garlic, minced\\n - 2 tbsp soy sauce (or tamari for gluten-free)\\n - + 1 tbsp hoisin sauce\\n - 1 tsp sesame oil\\n - 1 tsp cornstarch\\n + \ - 2 tbsp water\\n - Green onions for garnish\\n - **Instructions:**\\n + \ 1. Heat wok or large pan over high heat.\\n 2. Add oil and tofu, + stir-fry for 5-7 minutes until golden brown.\\n 3. Remove tofu and set + aside.\\n 4. Add vegetables to pan, stir-fry for 3-4 minutes.\\n 5. + Add garlic and cook for 30 seconds.\\n 6. Return tofu to pan.\\n 7. + Mix soy sauce, hoisin sauce, sesame oil, cornstarch, and water.\\n 8. + Add sauce to pan, stir for 1 minute until thickened.\\n 9. Garnish with + green onions and serve with rice.\\n\\n2. **Classic Caesar Salad**\\n - + **Ingredients:**\\n - 2 heads romaine lettuce, chopped\\n - 1/2 cup + mayonnaise\\n - 2 tbsp lemon juice\\n - 2 cloves garlic, minced\\n + \ - 1 tsp Dijon mustard\\n - 1 tsp Worcestershire sauce\\n - 1/2 + cup Parmesan cheese, grated\\n - 2 anchovy fillets, minced (optional)\\n + \ - 1 cup croutons\\n - Black pepper\\n - Salt\\n - **Instructions:**\\n + \ 1. Wash and dry romaine lettuce thoroughly.\\n 2. Whisk mayonnaise, + lemon juice, garlic, and mustard.\\n 3. Add Worcestershire sauce and anchovies + if using.\\n 4. Season dressing with salt and pepper.\\n 5. Toss lettuce + with dressing.\\n 6. Add most of the Parmesan cheese and toss.\\n 7. + Top with croutons and remaining cheese.\\n 8. Serve immediately.\\n\\nBoth + recipes are healthy options, with the stir fry being plant-based and low in + calories, making it a great healthy snack. Enjoy!\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641861930,\"trace_id\":\"94d7bb2b8b2fff15d5654b7868ff8c2a\",\"span_id\":\"83cf00ed27dff763\",\"parent_span_id\":\"de7353505339709d\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Main + Chat Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Handoff + to the Recipe Editor Agent agent to handle the request. \",\"llm.request.functions.0.name\":\"transfer_to_recipe_editor_agent\",\"llm.request.functions.0.parameters\":\"{\\\"additionalProperties\\\": + false, \\\"type\\\": \\\"object\\\", \\\"properties\\\": {}, \\\"required\\\": + []}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"14\",\"llm.usage.prompt_tokens\":\"224\",\"llm.usage.total_tokens\":\"238\",\"llm.vendor\":\"openai\"},\"duration\":1659,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"What + are some vegan recipes for snack?\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{}\",\"llm.completions.0.tool_calls.0.id\":\"call_PkwiKeFEuXK3Nw7niuYRchgz\",\"llm.completions.0.tool_calls.0.name\":\"transfer_to_recipe_editor_agent\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641861929,\"trace_id\":\"94d7bb2b8b2fff15d5654b7868ff8c2a\",\"span_id\":\"de7353505339709d\",\"parent_span_id\":\"f0721dde47d03651\",\"trace_state\":\"\",\"span_name\":\"Main + Chat Agent.agent\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Main + Chat Agent\",\"llm.vendor\":\"openai_agents\",\"openai.agent.handoff0\":\"{\\\"name\\\": + \\\"unknown\\\", \\\"instructions\\\": \\\"No instructions\\\"}\",\"traceloop.span.kind\":\"agent\"},\"duration\":1662,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641861928,\"trace_id\":\"94d7bb2b8b2fff15d5654b7868ff8c2a\",\"span_id\":\"f0721dde47d03651\",\"parent_span_id\":\"\",\"trace_state\":\"\",\"span_name\":\"Agent + Workflow\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.vendor\":\"openai_agents\",\"llm.workflow.name\":\"Agent + Workflow\",\"traceloop.span.kind\":\"workflow\"},\"duration\":8219,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641863591,\"trace_id\":\"94d7bb2b8b2fff15d5654b7868ff8c2a\",\"span_id\":\"15f7239c5f55a608\",\"parent_span_id\":\"de7353505339709d\",\"trace_state\":\"\",\"span_name\":\"Main + Chat Agent \u2192 unknown.handoff\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Main + Chat Agent\",\"llm.handoff.from_agent\":\"Main Chat Agent\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"handoff\"},\"duration\":0,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641863592,\"trace_id\":\"94d7bb2b8b2fff15d5654b7868ff8c2a\",\"span_id\":\"36d80bc4be18e4b9\",\"parent_span_id\":\"f0721dde47d03651\",\"trace_state\":\"\",\"span_name\":\"Recipe + Editor Agent.agent\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"agent\"},\"duration\":6555,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641863592,\"trace_id\":\"94d7bb2b8b2fff15d5654b7868ff8c2a\",\"span_id\":\"e052ea4bd13ce381\",\"parent_span_id\":\"36d80bc4be18e4b9\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + and browse recipes in the database.\",\"llm.request.functions.0.name\":\"search_recipes\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"query\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Search + term to filter recipes (optional)\\\", \\\"title\\\": \\\"Query\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"title\\\": \\\"search_recipes_args\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": [\\\"query\\\"]}\",\"llm.request.functions.1.description\":\"Plan + modifications to a recipe based on user request and apply them.\",\"llm.request.functions.1.name\":\"plan_and_apply_recipe_modifications\",\"llm.request.functions.1.parameters\":\"{\\\"$defs\\\": + {\\\"Recipe\\\": {\\\"properties\\\": {\\\"id\\\": {\\\"title\\\": \\\"Id\\\", + \\\"type\\\": \\\"string\\\"}, \\\"name\\\": {\\\"title\\\": \\\"Name\\\", + \\\"type\\\": \\\"string\\\"}, \\\"ingredients\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Ingredients\\\", \\\"type\\\": \\\"array\\\"}, + \\\"instructions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": + \\\"Instructions\\\", \\\"type\\\": \\\"array\\\"}, \\\"prep_time\\\": {\\\"title\\\": + \\\"Prep Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"cook_time\\\": {\\\"title\\\": + \\\"Cook Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"servings\\\": {\\\"title\\\": + \\\"Servings\\\", \\\"type\\\": \\\"integer\\\"}}, \\\"required\\\": [\\\"id\\\", + \\\"name\\\", \\\"ingredients\\\", \\\"instructions\\\", \\\"prep_time\\\", + \\\"cook_time\\\", \\\"servings\\\"], \\\"title\\\": \\\"Recipe\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false}}, \\\"properties\\\": + {\\\"recipe\\\": {\\\"$ref\\\": \\\"#/$defs/Recipe\\\"}, \\\"modification_request\\\": + {\\\"description\\\": \\\"Description of the desired changes\\\", \\\"title\\\": + \\\"Modification Request\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"recipe\\\", \\\"modification_request\\\"], \\\"title\\\": \\\"plan_and_apply_recipe_modifications_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"18\",\"llm.usage.prompt_tokens\":\"481\",\"llm.usage.total_tokens\":\"499\",\"llm.vendor\":\"openai\"},\"duration\":929,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"What + are some vegan recipes for snack?\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"query\\\":\\\"vegan + snack\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_mSMQcJYr1r9foO5xF0cqVdqc\",\"llm.completions.0.tool_calls.0.name\":\"search_recipes\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641864523,\"trace_id\":\"94d7bb2b8b2fff15d5654b7868ff8c2a\",\"span_id\":\"49ae576e642f15fc\",\"parent_span_id\":\"36d80bc4be18e4b9\",\"trace_state\":\"\",\"span_name\":\"search_recipes.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.tool.name\":\"search_recipes\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":2616,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"search_recipes\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641864536,\"trace_id\":\"94d7bb2b8b2fff15d5654b7868ff8c2a\",\"span_id\":\"eaba32f0dd7fdf73\",\"parent_span_id\":\"49ae576e642f15fc\",\"trace_state\":\"\",\"span_name\":\"openai.chat\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai.v1\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.headers\":\"None\",\"llm.is_streaming\":\"false\",\"llm.openai.api_base\":\"https://api.openai.com/v1/\",\"llm.openai.system_fingerprint\":\"fp_560af6e559\",\"llm.request.max_tokens\":\"500\",\"llm.request.model\":\"gpt-4o-mini\",\"llm.request.temperature\":\"0.100000\",\"llm.request.type\":\"chat\",\"llm.response.id\":\"chatcmpl-CNBWLBRJ6LXB14pNqZdtYU9ttuDjV\",\"llm.response.model\":\"gpt-4o-mini-2024-07-18\",\"llm.usage.cache_read_input_tokens\":\"0\",\"llm.usage.completion_tokens\":\"57\",\"llm.usage.prompt_tokens\":\"738\",\"llm.usage.reasoning_tokens\":\"0\",\"llm.usage.total_tokens\":\"795\",\"llm.vendor\":\"openai\"},\"duration\":2602,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"You + are a helpful recipe search assistant that returns only valid JSON.\",\"llm.prompts.0.role\":\"system\",\"llm.prompts.1.content\":\"\\nYou + are a recipe search expert. Given a user's search query and a list of available + recipes,\\nidentify which recipes are most relevant to the user's request.\\n\\nUser's + search query: \\\"vegan snack\\\"\\n\\nAvailable recipes:\\n[\\n {\\n \\\"id\\\": + \\\"spaghetti_carbonara\\\",\\n \\\"name\\\": \\\"Spaghetti Carbonara\\\",\\n + \ \\\"ingredients\\\": [\\n \\\"400g spaghetti\\\",\\n \\\"200g + pancetta or guanciale\\\",\\n \\\"4 large eggs\\\",\\n \\\"100g + Pecorino Romano cheese, grated\\\",\\n \\\"2 cloves garlic\\\"\\n ],\\n + \ \\\"cuisine_type\\\": \\\"various\\\",\\n \\\"prep_time\\\": \\\"10 + minutes\\\",\\n \\\"cook_time\\\": \\\"15 minutes\\\",\\n \\\"servings\\\": + 4\\n },\\n {\\n \\\"id\\\": \\\"chicken_tikka_masala\\\",\\n \\\"name\\\": + \\\"Chicken Tikka Masala\\\",\\n \\\"ingredients\\\": [\\n \\\"500g + chicken breast, cubed\\\",\\n \\\"200ml plain yogurt\\\",\\n \\\"2 + tsp garam masala\\\",\\n \\\"1 tsp turmeric\\\",\\n \\\"1 onion, + diced\\\"\\n ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n \\\"prep_time\\\": + \\\"45 minutes\\\",\\n \\\"cook_time\\\": \\\"30 minutes\\\",\\n \\\"servings\\\": + 4\\n },\\n {\\n \\\"id\\\": \\\"chocolate_chip_cookies\\\",\\n \\\"name\\\": + \\\"Classic Chocolate Chip Cookies\\\",\\n \\\"ingredients\\\": [\\n \\\"225g + butter, softened\\\",\\n \\\"200g brown sugar\\\",\\n \\\"100g white + sugar\\\",\\n \\\"2 large eggs\\\",\\n \\\"1 tsp vanilla extract\\\"\\n + \ ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n \\\"prep_time\\\": + \\\"15 minutes\\\",\\n \\\"cook_time\\\": \\\"10 minutes\\\",\\n \\\"servings\\\": + 24\\n },\\n {\\n \\\"id\\\": \\\"beef_stir_fry\\\",\\n \\\"name\\\": + \\\"Vegan Vegetable Stir Fry\\\",\\n \\\"ingredients\\\": [\\n \\\"500g + firm tofu, pressed and cubed\\\",\\n \\\"2 tbsp vegetable oil\\\",\\n + \ \\\"1 bell pepper, sliced\\\",\\n \\\"1 onion, sliced\\\",\\n \\\"200g + broccoli florets\\\"\\n ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n + \ \\\"prep_time\\\": \\\"15 minutes\\\",\\n \\\"cook_time\\\": \\\"10 + minutes\\\",\\n \\\"servings\\\": 4\\n },\\n {\\n \\\"id\\\": \\\"caesar_salad\\\",\\n + \ \\\"name\\\": \\\"Classic Caesar Salad\\\",\\n \\\"ingredients\\\": + [\\n \\\"2 heads romaine lettuce, chopped\\\",\\n \\\"1/2 cup mayonnaise\\\",\\n + \ \\\"2 tbsp lemon juice\\\",\\n \\\"2 cloves garlic, minced\\\",\\n + \ \\\"1 tsp Dijon mustard\\\"\\n ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n + \ \\\"prep_time\\\": \\\"15 minutes\\\",\\n \\\"cook_time\\\": \\\"0 + minutes\\\",\\n \\\"servings\\\": 4\\n }\\n]\\n\\nPlease analyze the query + and return a JSON response with the following format:\\n{\\n \\\"relevant_recipe_ids\\\": + [\\\"recipe_id1\\\", \\\"recipe_id2\\\", ...],\\n \\\"reasoning\\\": \\\"Brief + explanation of why these recipes match the query\\\"\\n}\\n\\nConsider:\\n- + Ingredient matches (exact or similar)\\n- Cuisine type preferences\\n- Cooking + method preferences\\n- Dietary restrictions (vegetarian, vegan, gluten-free, + etc.)\\n- Meal type (breakfast, lunch, dinner, dessert)\\n- Difficulty level + or time preferences\\n- Flavor profiles (spicy, sweet, savory, etc.)\\n\\nReturn + only the JSON response, no additional text.\\n\",\"llm.prompts.1.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"{\\n + \ \\\"relevant_recipe_ids\\\": [\\\"beef_stir_fry\\\"],\\n \\\"reasoning\\\": + \\\"The Vegan Vegetable Stir Fry is a suitable vegan snack option, as it contains + plant-based ingredients and is quick to prepare, aligning with the user's + request for a vegan snack.\\\"\\n}\",\"llm.completions.0.finish_reason\":\"stop\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641867140,\"trace_id\":\"94d7bb2b8b2fff15d5654b7868ff8c2a\",\"span_id\":\"0f083ab66b675e75\",\"parent_span_id\":\"36d80bc4be18e4b9\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + and browse recipes in the database.\",\"llm.request.functions.0.name\":\"search_recipes\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"query\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Search + term to filter recipes (optional)\\\", \\\"title\\\": \\\"Query\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"title\\\": \\\"search_recipes_args\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": [\\\"query\\\"]}\",\"llm.request.functions.1.description\":\"Plan + modifications to a recipe based on user request and apply them.\",\"llm.request.functions.1.name\":\"plan_and_apply_recipe_modifications\",\"llm.request.functions.1.parameters\":\"{\\\"$defs\\\": + {\\\"Recipe\\\": {\\\"properties\\\": {\\\"id\\\": {\\\"title\\\": \\\"Id\\\", + \\\"type\\\": \\\"string\\\"}, \\\"name\\\": {\\\"title\\\": \\\"Name\\\", + \\\"type\\\": \\\"string\\\"}, \\\"ingredients\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Ingredients\\\", \\\"type\\\": \\\"array\\\"}, + \\\"instructions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": + \\\"Instructions\\\", \\\"type\\\": \\\"array\\\"}, \\\"prep_time\\\": {\\\"title\\\": + \\\"Prep Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"cook_time\\\": {\\\"title\\\": + \\\"Cook Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"servings\\\": {\\\"title\\\": + \\\"Servings\\\", \\\"type\\\": \\\"integer\\\"}}, \\\"required\\\": [\\\"id\\\", + \\\"name\\\", \\\"ingredients\\\", \\\"instructions\\\", \\\"prep_time\\\", + \\\"cook_time\\\", \\\"servings\\\"], \\\"title\\\": \\\"Recipe\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false}}, \\\"properties\\\": + {\\\"recipe\\\": {\\\"$ref\\\": \\\"#/$defs/Recipe\\\"}, \\\"modification_request\\\": + {\\\"description\\\": \\\"Description of the desired changes\\\", \\\"title\\\": + \\\"Modification Request\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"recipe\\\", \\\"modification_request\\\"], \\\"title\\\": \\\"plan_and_apply_recipe_modifications_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"304\",\"llm.usage.prompt_tokens\":\"822\",\"llm.usage.total_tokens\":\"1126\",\"llm.vendor\":\"openai\"},\"duration\":3006,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"What + are some vegan recipes for snack?\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"I + found a vegan snack recipe for you: **Vegan Vegetable Stir Fry**. It's quick + to prepare and makes for a delicious snack.\\n\\n### Ingredients\\n- 500g + firm tofu, pressed and cubed\\n- 2 tbsp vegetable oil\\n- 1 bell pepper, sliced\\n- + 1 onion, sliced\\n- 200g broccoli florets\\n- 2 carrots, sliced\\n- 3 cloves + garlic, minced\\n- 2 tbsp soy sauce (or tamari for gluten-free)\\n- 1 tbsp + hoisin sauce\\n- 1 tsp sesame oil\\n- 1 tsp cornstarch\\n- 2 tbsp water\\n- + Green onions for garnish\\n\\n### Instructions\\n1. Heat a wok or large pan + over high heat.\\n2. Add oil and tofu, stir-fry for 5-7 minutes until golden + brown.\\n3. Remove tofu and set aside.\\n4. Add vegetables to the pan, stir-fry + for 3-4 minutes.\\n5. Add garlic and cook for 30 seconds.\\n6. Return tofu + to the pan.\\n7. Mix soy sauce, hoisin sauce, sesame oil, cornstarch, and + water.\\n8. Add sauce to the pan, stir for 1 minute until thickened.\\n9. + Garnish with green onions and serve with rice.\\n\\n### Prep Time\\n15 minutes\\n\\n### + Cook Time\\n10 minutes\\n\\n### Servings\\n4\\n\\nEnjoy your snack! Let me + know if you need any modifications or further assistance.\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641871157,\"trace_id\":\"810beadd9b86f1451416bc6f85890190\",\"span_id\":\"011ef8cdb9f0233f\",\"parent_span_id\":\"43a18f1a5a45773f\",\"trace_state\":\"\",\"span_name\":\"Main + Chat Agent.agent\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Main + Chat Agent\",\"llm.vendor\":\"openai_agents\",\"openai.agent.handoff0\":\"{\\\"name\\\": + \\\"unknown\\\", \\\"instructions\\\": \\\"No instructions\\\"}\",\"traceloop.span.kind\":\"agent\"},\"duration\":3576,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641871158,\"trace_id\":\"810beadd9b86f1451416bc6f85890190\",\"span_id\":\"22f435d1158609de\",\"parent_span_id\":\"011ef8cdb9f0233f\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Main + Chat Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Handoff + to the Recipe Editor Agent agent to handle the request. \",\"llm.request.functions.0.name\":\"transfer_to_recipe_editor_agent\",\"llm.request.functions.0.parameters\":\"{\\\"additionalProperties\\\": + false, \\\"type\\\": \\\"object\\\", \\\"properties\\\": {}, \\\"required\\\": + []}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"14\",\"llm.usage.prompt_tokens\":\"226\",\"llm.usage.total_tokens\":\"240\",\"llm.vendor\":\"openai\"},\"duration\":3574,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Can + you search for recipes for a spicy dinner?\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{}\",\"llm.completions.0.tool_calls.0.id\":\"call_FUsb3sKbzcrGvtRRq4nL0W4g\",\"llm.completions.0.tool_calls.0.name\":\"transfer_to_recipe_editor_agent\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641871157,\"trace_id\":\"810beadd9b86f1451416bc6f85890190\",\"span_id\":\"43a18f1a5a45773f\",\"parent_span_id\":\"\",\"trace_state\":\"\",\"span_name\":\"Agent + Workflow\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.vendor\":\"openai_agents\",\"llm.workflow.name\":\"Agent + Workflow\",\"traceloop.span.kind\":\"workflow\"},\"duration\":18697,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641874736,\"trace_id\":\"810beadd9b86f1451416bc6f85890190\",\"span_id\":\"16a7b72021379a9f\",\"parent_span_id\":\"bf9e44287a0d506f\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + and browse recipes in the database.\",\"llm.request.functions.0.name\":\"search_recipes\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"query\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Search + term to filter recipes (optional)\\\", \\\"title\\\": \\\"Query\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"title\\\": \\\"search_recipes_args\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": [\\\"query\\\"]}\",\"llm.request.functions.1.description\":\"Plan + modifications to a recipe based on user request and apply them.\",\"llm.request.functions.1.name\":\"plan_and_apply_recipe_modifications\",\"llm.request.functions.1.parameters\":\"{\\\"$defs\\\": + {\\\"Recipe\\\": {\\\"properties\\\": {\\\"id\\\": {\\\"title\\\": \\\"Id\\\", + \\\"type\\\": \\\"string\\\"}, \\\"name\\\": {\\\"title\\\": \\\"Name\\\", + \\\"type\\\": \\\"string\\\"}, \\\"ingredients\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Ingredients\\\", \\\"type\\\": \\\"array\\\"}, + \\\"instructions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": + \\\"Instructions\\\", \\\"type\\\": \\\"array\\\"}, \\\"prep_time\\\": {\\\"title\\\": + \\\"Prep Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"cook_time\\\": {\\\"title\\\": + \\\"Cook Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"servings\\\": {\\\"title\\\": + \\\"Servings\\\", \\\"type\\\": \\\"integer\\\"}}, \\\"required\\\": [\\\"id\\\", + \\\"name\\\", \\\"ingredients\\\", \\\"instructions\\\", \\\"prep_time\\\", + \\\"cook_time\\\", \\\"servings\\\"], \\\"title\\\": \\\"Recipe\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false}}, \\\"properties\\\": + {\\\"recipe\\\": {\\\"$ref\\\": \\\"#/$defs/Recipe\\\"}, \\\"modification_request\\\": + {\\\"description\\\": \\\"Description of the desired changes\\\", \\\"title\\\": + \\\"Modification Request\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"recipe\\\", \\\"modification_request\\\"], \\\"title\\\": \\\"plan_and_apply_recipe_modifications_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"18\",\"llm.usage.prompt_tokens\":\"483\",\"llm.usage.total_tokens\":\"501\",\"llm.vendor\":\"openai\"},\"duration\":968,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Can + you search for recipes for a spicy dinner?\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"query\\\":\\\"spicy + dinner\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_h9yl2rXNKh6169v4hWDNedJb\",\"llm.completions.0.tool_calls.0.name\":\"search_recipes\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641874735,\"trace_id\":\"810beadd9b86f1451416bc6f85890190\",\"span_id\":\"bf9e44287a0d506f\",\"parent_span_id\":\"43a18f1a5a45773f\",\"trace_state\":\"\",\"span_name\":\"Recipe + Editor Agent.agent\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"agent\"},\"duration\":15119,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641874734,\"trace_id\":\"810beadd9b86f1451416bc6f85890190\",\"span_id\":\"fc4c4dddc061ffb7\",\"parent_span_id\":\"011ef8cdb9f0233f\",\"trace_state\":\"\",\"span_name\":\"Main + Chat Agent \u2192 unknown.handoff\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Main + Chat Agent\",\"llm.handoff.from_agent\":\"Main Chat Agent\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"handoff\"},\"duration\":0,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641875705,\"trace_id\":\"810beadd9b86f1451416bc6f85890190\",\"span_id\":\"98575af300ee7150\",\"parent_span_id\":\"bf9e44287a0d506f\",\"trace_state\":\"\",\"span_name\":\"search_recipes.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.tool.name\":\"search_recipes\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":2669,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"search_recipes\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641875718,\"trace_id\":\"810beadd9b86f1451416bc6f85890190\",\"span_id\":\"fdaeaaedddc7bf76\",\"parent_span_id\":\"98575af300ee7150\",\"trace_state\":\"\",\"span_name\":\"openai.chat\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai.v1\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.headers\":\"None\",\"llm.is_streaming\":\"false\",\"llm.openai.api_base\":\"https://api.openai.com/v1/\",\"llm.openai.system_fingerprint\":\"fp_560af6e559\",\"llm.request.max_tokens\":\"500\",\"llm.request.model\":\"gpt-4o-mini\",\"llm.request.temperature\":\"0.100000\",\"llm.request.type\":\"chat\",\"llm.response.id\":\"chatcmpl-CNBWX3dpvxFF5TtHVitDD2iOiYJ11\",\"llm.response.model\":\"gpt-4o-mini-2024-07-18\",\"llm.usage.cache_read_input_tokens\":\"0\",\"llm.usage.completion_tokens\":\"63\",\"llm.usage.prompt_tokens\":\"738\",\"llm.usage.reasoning_tokens\":\"0\",\"llm.usage.total_tokens\":\"801\",\"llm.vendor\":\"openai\"},\"duration\":2655,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"You + are a helpful recipe search assistant that returns only valid JSON.\",\"llm.prompts.0.role\":\"system\",\"llm.prompts.1.content\":\"\\nYou + are a recipe search expert. Given a user's search query and a list of available + recipes,\\nidentify which recipes are most relevant to the user's request.\\n\\nUser's + search query: \\\"spicy dinner\\\"\\n\\nAvailable recipes:\\n[\\n {\\n \\\"id\\\": + \\\"spaghetti_carbonara\\\",\\n \\\"name\\\": \\\"Spaghetti Carbonara\\\",\\n + \ \\\"ingredients\\\": [\\n \\\"400g spaghetti\\\",\\n \\\"200g + pancetta or guanciale\\\",\\n \\\"4 large eggs\\\",\\n \\\"100g + Pecorino Romano cheese, grated\\\",\\n \\\"2 cloves garlic\\\"\\n ],\\n + \ \\\"cuisine_type\\\": \\\"various\\\",\\n \\\"prep_time\\\": \\\"10 + minutes\\\",\\n \\\"cook_time\\\": \\\"15 minutes\\\",\\n \\\"servings\\\": + 4\\n },\\n {\\n \\\"id\\\": \\\"chicken_tikka_masala\\\",\\n \\\"name\\\": + \\\"Chicken Tikka Masala\\\",\\n \\\"ingredients\\\": [\\n \\\"500g + chicken breast, cubed\\\",\\n \\\"200ml plain yogurt\\\",\\n \\\"2 + tsp garam masala\\\",\\n \\\"1 tsp turmeric\\\",\\n \\\"1 onion, + diced\\\"\\n ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n \\\"prep_time\\\": + \\\"45 minutes\\\",\\n \\\"cook_time\\\": \\\"30 minutes\\\",\\n \\\"servings\\\": + 4\\n },\\n {\\n \\\"id\\\": \\\"chocolate_chip_cookies\\\",\\n \\\"name\\\": + \\\"Classic Chocolate Chip Cookies\\\",\\n \\\"ingredients\\\": [\\n \\\"225g + butter, softened\\\",\\n \\\"200g brown sugar\\\",\\n \\\"100g white + sugar\\\",\\n \\\"2 large eggs\\\",\\n \\\"1 tsp vanilla extract\\\"\\n + \ ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n \\\"prep_time\\\": + \\\"15 minutes\\\",\\n \\\"cook_time\\\": \\\"10 minutes\\\",\\n \\\"servings\\\": + 24\\n },\\n {\\n \\\"id\\\": \\\"beef_stir_fry\\\",\\n \\\"name\\\": + \\\"Vegan Vegetable Stir Fry\\\",\\n \\\"ingredients\\\": [\\n \\\"500g + firm tofu, pressed and cubed\\\",\\n \\\"2 tbsp vegetable oil\\\",\\n + \ \\\"1 bell pepper, sliced\\\",\\n \\\"1 onion, sliced\\\",\\n \\\"200g + broccoli florets\\\"\\n ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n + \ \\\"prep_time\\\": \\\"15 minutes\\\",\\n \\\"cook_time\\\": \\\"10 + minutes\\\",\\n \\\"servings\\\": 4\\n },\\n {\\n \\\"id\\\": \\\"caesar_salad\\\",\\n + \ \\\"name\\\": \\\"Classic Caesar Salad\\\",\\n \\\"ingredients\\\": + [\\n \\\"2 heads romaine lettuce, chopped\\\",\\n \\\"1/2 cup mayonnaise\\\",\\n + \ \\\"2 tbsp lemon juice\\\",\\n \\\"2 cloves garlic, minced\\\",\\n + \ \\\"1 tsp Dijon mustard\\\"\\n ],\\n \\\"cuisine_type\\\": \\\"various\\\",\\n + \ \\\"prep_time\\\": \\\"15 minutes\\\",\\n \\\"cook_time\\\": \\\"0 + minutes\\\",\\n \\\"servings\\\": 4\\n }\\n]\\n\\nPlease analyze the query + and return a JSON response with the following format:\\n{\\n \\\"relevant_recipe_ids\\\": + [\\\"recipe_id1\\\", \\\"recipe_id2\\\", ...],\\n \\\"reasoning\\\": \\\"Brief + explanation of why these recipes match the query\\\"\\n}\\n\\nConsider:\\n- + Ingredient matches (exact or similar)\\n- Cuisine type preferences\\n- Cooking + method preferences\\n- Dietary restrictions (vegetarian, vegan, gluten-free, + etc.)\\n- Meal type (breakfast, lunch, dinner, dessert)\\n- Difficulty level + or time preferences\\n- Flavor profiles (spicy, sweet, savory, etc.)\\n\\nReturn + only the JSON response, no additional text.\\n\",\"llm.prompts.1.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"{\\n + \ \\\"relevant_recipe_ids\\\": [\\\"chicken_tikka_masala\\\"],\\n \\\"reasoning\\\": + \\\"Chicken Tikka Masala is a spicy dish that fits the user's request for + a spicy dinner. It contains spices like garam masala and turmeric, which contribute + to its heat and flavor profile.\\\"\\n}\",\"llm.completions.0.finish_reason\":\"stop\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1759641878375,\"trace_id\":\"810beadd9b86f1451416bc6f85890190\",\"span_id\":\"7677c28ec70e7c7f\",\"parent_span_id\":\"bf9e44287a0d506f\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"openai-agents-demo\",\"resource_attributes\":{\"service.name\":\"openai-agents-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Recipe + Editor Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + and browse recipes in the database.\",\"llm.request.functions.0.name\":\"search_recipes\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"query\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Search + term to filter recipes (optional)\\\", \\\"title\\\": \\\"Query\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"title\\\": \\\"search_recipes_args\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": [\\\"query\\\"]}\",\"llm.request.functions.1.description\":\"Plan + modifications to a recipe based on user request and apply them.\",\"llm.request.functions.1.name\":\"plan_and_apply_recipe_modifications\",\"llm.request.functions.1.parameters\":\"{\\\"$defs\\\": + {\\\"Recipe\\\": {\\\"properties\\\": {\\\"id\\\": {\\\"title\\\": \\\"Id\\\", + \\\"type\\\": \\\"string\\\"}, \\\"name\\\": {\\\"title\\\": \\\"Name\\\", + \\\"type\\\": \\\"string\\\"}, \\\"ingredients\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Ingredients\\\", \\\"type\\\": \\\"array\\\"}, + \\\"instructions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": + \\\"Instructions\\\", \\\"type\\\": \\\"array\\\"}, \\\"prep_time\\\": {\\\"title\\\": + \\\"Prep Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"cook_time\\\": {\\\"title\\\": + \\\"Cook Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"servings\\\": {\\\"title\\\": + \\\"Servings\\\", \\\"type\\\": \\\"integer\\\"}}, \\\"required\\\": [\\\"id\\\", + \\\"name\\\", \\\"ingredients\\\", \\\"instructions\\\", \\\"prep_time\\\", + \\\"cook_time\\\", \\\"servings\\\"], \\\"title\\\": \\\"Recipe\\\", \\\"type\\\": + \\\"object\\\", \\\"additionalProperties\\\": false}}, \\\"properties\\\": + {\\\"recipe\\\": {\\\"$ref\\\": \\\"#/$defs/Recipe\\\"}, \\\"modification_request\\\": + {\\\"description\\\": \\\"Description of the desired changes\\\", \\\"title\\\": + \\\"Modification Request\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"recipe\\\", \\\"modification_request\\\"], \\\"title\\\": \\\"plan_and_apply_recipe_modifications_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"296\",\"llm.usage.prompt_tokens\":\"804\",\"llm.usage.total_tokens\":\"1100\",\"llm.vendor\":\"openai\"},\"duration\":11477,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Can + you search for recipes for a spicy dinner?\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"I + found a recipe for a spicy dinner: **Chicken Tikka Masala**. Here's a quick + overview:\\n\\n### Ingredients:\\n- 500g chicken breast, cubed\\n- 200ml plain + yogurt\\n- 2 tsp garam masala\\n- 1 tsp turmeric\\n- 1 onion, diced\\n- 3 + cloves garlic, minced\\n- 1 inch ginger, grated\\n- 400ml coconut milk\\n- + 400g canned tomatoes\\n- 2 tbsp tomato paste\\n- 1 tsp cumin\\n- 1 tsp coriander\\n- + Salt and pepper\\n- Fresh cilantro\\n\\n### Instructions:\\n1. Marinate chicken + in yogurt, garam masala, and turmeric for 30 minutes.\\n2. Grill or pan-fry + chicken pieces until cooked through.\\n3. Saut\xE9 onion until golden, add + garlic and ginger.\\n4. Add spices and cook for 1 minute.\\n5. Add tomatoes + and tomato paste, simmer for 10 minutes.\\n6. Add coconut milk and cooked + chicken.\\n7. Simmer for 15 minutes until thick.\\n8. Garnish with cilantro + and serve with rice.\\n\\n### Times:\\n- Prep Time: 45 minutes\\n- Cook Time: + 30 minutes\\n- Servings: 4\\n\\nThis dish is rich in flavor, with spices like + garam masala and turmeric adding a nice heat. Enjoy your spicy dinner! If + you need any modifications or have any questions, feel free to ask.\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1760014404763,\"trace_id\":\"86e8b8f4016137ebc0f72d96344daca0\",\"span_id\":\"67f0cc27ba3ce1b2\",\"parent_span_id\":\"7a45af48d5b92bc3\",\"trace_state\":\"\",\"span_name\":\"Travel + Planner Agent.agent\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"agent\"},\"duration\":35021,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1760014404767,\"trace_id\":\"86e8b8f4016137ebc0f72d96344daca0\",\"span_id\":\"7233a1f2b7cbaaea\",\"parent_span_id\":\"67f0cc27ba3ce1b2\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.34.1\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.3\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.1.name\":\"get_weather_forecast\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.2.name\":\"get_location_coordinates\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"294\",\"llm.usage.prompt_tokens\":\"0\",\"llm.usage.total_tokens\":\"294\",\"llm.vendor\":\"openai\"},\"duration\":8559,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Looking + for a 10-day cultural vacation in Europe with focus on culture\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"That + sounds exciting! Here\u2019s how we can plan your cultural vacation in Europe:\\n\\n### + Step 1: Identify Potential Destinations\\nFor a cultural vacation in Europe, + you might consider cities known for their rich history, architecture, museums, + and cultural events. Potential destinations include:\\n\\n- Paris, France\\n- + Rome, Italy\\n- Athens, Greece\\n- Vienna, Austria\\n- Prague, Czech Republic\\n\\n### + Step 2: Check Weather Conditions\\nIt's important to know what the weather + will be like during your visit. I'll check the current weather and forecasts + for each destination.\\n\\n### Step 3: Gather Detailed Information\\nWe can + dive into what each city has to offer in terms of cultural attractions, museums, + and events.\\n\\n### Step 4: Recommendations\\nBased on the information, I\u2019ll + provide tailored recommendations for your trip itinerary.\\n\\nLet me get + started on checking the weather and gathering information about these destinations.\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.1.finish_reason\":\"tool_calls\",\"llm.completions.1.role\":\"assistant\",\"llm.completions.1.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Paris, + France\\\"}\",\"llm.completions.1.tool_calls.0.id\":\"call_ptmmJ3wF2yZNDwPhZ6jIJShe\",\"llm.completions.1.tool_calls.0.name\":\"get_location_coordinates\",\"llm.completions.2.finish_reason\":\"tool_calls\",\"llm.completions.2.role\":\"assistant\",\"llm.completions.2.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Rome, + Italy\\\"}\",\"llm.completions.2.tool_calls.0.id\":\"call_Gd2rmUcborRSIps5UScvNldq\",\"llm.completions.2.tool_calls.0.name\":\"get_location_coordinates\",\"llm.completions.3.finish_reason\":\"tool_calls\",\"llm.completions.3.role\":\"assistant\",\"llm.completions.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Athens, + Greece\\\"}\",\"llm.completions.3.tool_calls.0.id\":\"call_DUBkv7DCuWmvU6SCrm7RGCZ5\",\"llm.completions.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.completions.4.finish_reason\":\"tool_calls\",\"llm.completions.4.role\":\"assistant\",\"llm.completions.4.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Vienna, + Austria\\\"}\",\"llm.completions.4.tool_calls.0.id\":\"call_PBM1TZWYRZHMJfzQIK9qgjeG\",\"llm.completions.4.tool_calls.0.name\":\"get_location_coordinates\",\"llm.completions.5.finish_reason\":\"tool_calls\",\"llm.completions.5.role\":\"assistant\",\"llm.completions.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Prague, + Czech Republic\\\"}\",\"llm.completions.5.tool_calls.0.id\":\"call_YJXaocXoN1tKgMiIi9WJlRTq\",\"llm.completions.5.tool_calls.0.name\":\"get_location_coordinates\"},\"input\":\"\",\"output\":\"\"}],\"page_size\":50,\"total_results\":71075,\"next_cursor\":\"1760014404767\"}}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:18:29 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopFilters.test_search_with_comparison_operators.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopFilters.test_search_with_comparison_operators.yaml new file mode 100644 index 0000000..0d2d503 --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopFilters.test_search_with_comparison_operators.yaml @@ -0,0 +1,40 @@ +interactions: +- request: + body: '{"filters":[{"field":"duration","operator":"greater_than_or_equal","value":"100","value_type":"number"}],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":10}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '279' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/traces/root-spans + response: + body: + string: '{"root_spans":{"data":[{"environment":"prd","timestamp":1763273059770,"trace_id":"c4c7e548e1febe34757c208205caa53e","span_id":"6b3a38f23a58e2ec","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":68638,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":31096,"span_count":16},{"environment":"prd","timestamp":1763272977019,"trace_id":"f53581d7de2b03275fad361fd5a2a9fe","span_id":"51abd109e3f6fc45","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":80747,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":8650,"span_count":20},{"environment":"prd","timestamp":1763272914648,"trace_id":"83ba2d50d52cac29534deeb6f0197b60","span_id":"2c86398dc9615c3a","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":60364,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":25326,"span_count":26}],"page_size":3,"total_results":3,"next_cursor":"1763272914648"}}' + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:24 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopFilters.test_search_with_multiple_filters.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopFilters.test_search_with_multiple_filters.yaml new file mode 100644 index 0000000..207efdd --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopFilters.test_search_with_multiple_filters.yaml @@ -0,0 +1,846 @@ +interactions: +- request: + body: '{"filters":[],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":1000}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '190' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/traces/root-spans + response: + body: + string: '{"root_spans":{"data":[{"environment":"prd","timestamp":1763273059770,"trace_id":"c4c7e548e1febe34757c208205caa53e","span_id":"6b3a38f23a58e2ec","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":68638,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":31096,"span_count":16},{"environment":"prd","timestamp":1763272977019,"trace_id":"f53581d7de2b03275fad361fd5a2a9fe","span_id":"51abd109e3f6fc45","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":80747,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":8650,"span_count":20},{"environment":"prd","timestamp":1763272914648,"trace_id":"83ba2d50d52cac29534deeb6f0197b60","span_id":"2c86398dc9615c3a","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":60364,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":25326,"span_count":26},{"environment":"prd","timestamp":1763027558008,"trace_id":"29fb03129fc8a5aeabd87def55435f43","span_id":"b205122711ccafe4","parent_span_id":"","trace_state":"","span_name":"traceloop_hub.chat","span_kind":"SPAN_KIND_CLIENT","service_name":"unknown_service","resource_attributes":{"service.name":"unknown_service","telemetry.sdk.language":"rust","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"0.27.1"},"scope_name":"traceloop_hub","scope_version":"","span_attributes":{"llm.request.frequency_penalty":"0.000000","llm.request.model":"gpt-5.1","llm.request.presence_penalty":"0.000000","llm.request.type":"chat","llm.vendor":"openai"},"duration":1312,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{"llm.prompts.0.content":"[{\"type\":\"text\",\"text\":\"explain + who are you and what can you do in one sentence\"}]","llm.prompts.0.role":"user"},"completions":{},"input":"","output":"","total_tokens":0,"span_count":2},{"environment":"prd","timestamp":1762953417208,"trace_id":"e2871b06600cb44f772523756bf99ad3","span_id":"0fd131a789f73d47","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4730,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye Opentelemetry scallywag refuse + to sport spyglasses?\\n\\nBecause they didn''t be wantin'' to be traced! Arrr!\\n\\n + (o_o)\\n\\nHic\\n\\nComment on my pie chart to go far in\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762953408597,"trace_id":"24ea21374323feef794238646e477d79","span_id":"de6df20819872a2c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3531,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they be always trackin'' their doubloons!\\n\\n (vessels)\\n\\n\\u200b\\n\\nKudos + and notes\\n\\nThanks to Challengepost\\n\\n\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762953399257,"trace_id":"8e56c0da1bbc9d38f850465b16f576c8","span_id":"927f3379364fa4a5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5194,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Ye scallywags, why did Opentelemetry go to + therapy?\\n\\nBecause it couldn''t decide what to plunder next! Arrr!\\n\\n + :''(\\n\\nThis week in the community\\n\\nWe\\u2019ll start this week\\u2019s + newsletter with\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762953388540,"trace_id":"7b10976a382a4da03a65d0fe62a577c2","span_id":"ad2847a9be3e29ae","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5514,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry crossin'' the road? + To be tracin'' the chicken''s course! Arrr!\\n\\n Oh, I guess I''m talkin'' + about Service Ubiquity Syb\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762953379719,"trace_id":"bcd7b1d8768b317dd242bd94eb7408b3","span_id":"3e118324957da813","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4335,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the opentelemetry project gettin'' + invited to all the parties? ''Cause it always knows how to trace the best + route to the dance floor, matey! Arrr!\\n\\n Could do with some more like + these, the game is fun but too few (\"","total_tokens":600,"span_count":34},{"environment":"prd","timestamp":1762953370495,"trace_id":"3b4bb9514dd569958055552049300802","span_id":"cba3c553393323d0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4266,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer part + ways with their matey? ''Twas unable to handle the cargo of their relationship! + Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nDocker Templates\\n\\nDocker''s\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762953353515,"trace_id":"e7d9bb89558607369072c3c8bd2f12c9","span_id":"4912b5b0e5d356f2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":12292,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle all the loot they were + lugging around! Arrrr!\\n\\n (Ayo, worth looting indeed! ) Nom nom nom (I''m\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762953344499,"trace_id":"30ad2430df17b657c6818f02b0994390","span_id":"86985a4e525f41f0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4048,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry matey break up + with their pirate partner? Because they couldn''t handle all the tracing and + metrics in the pirate ship! Arrr!\\n\\n Why did the https://esa.forholidays.net + friend stop talking to their straw\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762953334595,"trace_id":"56083b53bddc3528a00b43a81eb2e878","span_id":"93ebe98d0f1059c0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4244,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go to Davy Jones'' locker? Because he be keepin'' tryin'' to trace his doubloons! + Arrr!\\n\\n Thanks for the help! https://ocp.opentelemetry.io/faqs/\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762953325299,"trace_id":"ed1db63d39344f6e38c4d065061cee19","span_id":"816b8f401d905b8a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5086,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Cause it couldn''t bear their booty! Arrrgh!\\n\\n And now the joke is over. + Take that\\u2026 open telemetry!\\n\\nJust rolled out\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762953316987,"trace_id":"81efba5ce68e779bb5f3b0d31b47c823","span_id":"8d1a59600eb7f38e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3603,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag abandon OpenTelemetry? + ''Twas unable to bear their loot! Arrr!\\n\\n \\n\\u2014 Delan Derderian + (@delander) October 1, \"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762953307023,"trace_id":"62e0fbbb0a71525c8a8e9d557b1ad9ea","span_id":"4137788d234823f4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3839,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + Because every time they tried to plunder their loot, their software kept tracing + it back to the buried treasure! Arr!\\n\\n I wipe my blade over ye mustache. + I''m a Scot pirate scally\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762934412201,"trace_id":"49d5d6b3daf2664515b02429bc8ae605","span_id":"cce1f2187e8a4891","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3435,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with *************? + Because it kept trackin'' their every step! Arrr!\\n\\n \\u200b \\u200b \\uf101 + Show more stamp\"","total_tokens":438,"span_count":34},{"environment":"prd","timestamp":1762934406504,"trace_id":"fa87b605fb61bba992f4cfcd78eebc80","span_id":"c4b3f6bb033a5125","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2825,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler part ways with Opentelemetry? + ''Twas unable to handle the vast treasure trove of baggage it brought to the + arrr-lationship! Arrr!\\n\\n \\ud83d\\udcaa\\n\\nEmbrace the maritime spirit + of love: wait until Cupid\\u2019s\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762934399232,"trace_id":"df91903099d69a861f279b13a93a7979","span_id":"4840f6dd685aa774","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4232,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + every time they tried to track their doubloons, it caused a massive loop in + their treasure chest!\\n\\n\"","total_tokens":530,"span_count":34},{"environment":"prd","timestamp":1762934391128,"trace_id":"c4f4fe98db3079d1a865b766efb3aa5b","span_id":"fc77313f2cbf4477","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4692,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their *****? Because they couldn''t be handlin'' the constant tracing + and monitoring of their pirate ship! Arrr!\\n\\n [more about this one] https://openthread.biz/h3ers\\n\\n\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762934384071,"trace_id":"bc71b081e3fcc54add49df4a47e2b4e3","span_id":"61143bf3b7c2f019","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3977,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag go broke after + implementin'' Opentelemetry? Because every time they tried to trace their + expenses, they got lost in the instrumentation, ye landlubber!\\n\\n 2A @ + 100wkw\\n\\n\\t\\t #ubitux \\n\\t\\t \"","total_tokens":604,"span_count":34},{"environment":"prd","timestamp":1762934375395,"trace_id":"2b3fd2cd74288edb50227df93d95271e","span_id":"a0f393b0add45f81","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6004,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the ********* abandon *************? + Because it couldn''t bear the heavy cargo it was lugging around! Arrr!\\n\\n + Pirately best practiced in its most traditional sense, open governance. This + is why\"","total_tokens":490,"span_count":34},{"environment":"prd","timestamp":1762934361936,"trace_id":"162f9b44b57248c646cd5ba3f2e8ce5f","span_id":"9a0b32020700160b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8290,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the ********* goin'' broke tryin'' + to implement OpenTelemetry?\\nBecause they be spendin'' all their doubloons + on traces! Arrr!\\n\\n Piratenspuren!\\n\\nPosted in Software engineering + . Tagged with open-te\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762934352831,"trace_id":"793170d111beb46174b72352dfe9fd3f","span_id":"87bb449951820596","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6517,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ************* go to therapy, *****? + Because it couldn''t stop tracing its troubles back to its wee childhood days! + Arrrgh!\\n\\n I hate myself...)\\ndatingcrew **********: And\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762934346981,"trace_id":"73786765ef3c35353a66af6d7e608c9d","span_id":"2e34e64e4aeca7f7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2886,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy knave bring a spyglass + to the opentelemetry conference? \\n\\nBecause they heard they needed to trace + all the critters!arr!\\n\\n \\n\\n---\\n\\n^(*ascii-grin*)\\n^(*Originating + short story / jokes\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762934339515,"trace_id":"37fbcb8957a47e35b3fec75c15cf790b","span_id":"6e9ea6ac8651bfd3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3725,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the OpenTelemetry scallywag go broke? + Because they be always tracing their doubloons!\\n\\n #voltdays20\\n\\nDue + to an audio production error, I removed the\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762882544136,"trace_id":"6bbb8403d2eb125a06fa8ce4c556d2fe","span_id":"60547c73a0213dbf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5856,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler go + broke?\\n\\nBecause he couldn''t track his doubloons!\\n\\n\\ud83c\\udff4\\u200d\\u2620\\ufe0f\\ud83e\\udd9c\\n\\nDeploy + to *******\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762876898831,"trace_id":"91633fe5b739e62fc5bd0040d1a1d43d","span_id":"c534e161feec79f1","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2153,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ***************** + ever trust OpenTelemetry?\\n\\nBecause they think it''s just TraceLoop trying + to find a new way to get in a continuous monitoring circle!\"","total_tokens":106,"span_count":6},{"environment":"prd","timestamp":1762876886104,"trace_id":"902e7a664052d45e02f89a27ff35d159","span_id":"10a62397b767998d","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2756,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + opentelemetry ********** play hide and seek?\\n\\nBecause good luck hiding + when they''re constantly tracking everything!\"","total_tokens":94,"span_count":6},{"environment":"prd","timestamp":1762876158512,"trace_id":"03a9b680790bce44e3205f4aab4d80e6","span_id":"d0d114971be5eb3d","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":1670,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust the Traceloop Opentelemetry?\\n\\nBecause they think it might start + tracing back their coffee breaks!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762876152058,"trace_id":"4af9731d3e1f60eef6cc36725b38c91c","span_id":"6f9d3b1acdcf5881","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2945,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + ********* play hide and seek with OpenTelemetry?\\n\\nBecause no matter where + they hide, OpenTelemetry always traces them!\"","total_tokens":102,"span_count":6},{"environment":"prd","timestamp":1762876146566,"trace_id":"01230af98664970762df9e738b0cefa8","span_id":"25639527fdcc632e","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2196,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + use TraceLoop OpenTelemetry to propose marriage?\\n\\nBecause it always traces + back the hidden errors and performance issues they''ve been hiding!\"","total_tokens":100,"span_count":6},{"environment":"prd","timestamp":1762876141358,"trace_id":"dae83ddb05d1de6f46bee25b25f8eb85","span_id":"407e6411343893ac","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":1944,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust TraceLoop OpenTelemetry?\\n\\nBecause they always feel like they''re + being traced!\"","total_tokens":82,"span_count":6},{"environment":"prd","timestamp":1762876133702,"trace_id":"7969294d9e5e91de2f08baf9f0b8ea1c","span_id":"91732e966d20ccbf","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":4108,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ****************** + use traceloop opentelemetry when they''re playing hide and seek?\\n\\nBecause + they don''t want traces of their hiding spots to be found!\"","total_tokens":110,"span_count":6},{"environment":"prd","timestamp":1762876116604,"trace_id":"a0d2158649575536608bc0801de67481","span_id":"0450db6a479748b0","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":4249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + and opentelemetry ever play hide and seek?\\n\\nBecause good luck hiding when + you''re always being traced.\"","total_tokens":96,"span_count":6},{"environment":"prd","timestamp":1762875538327,"trace_id":"7b50297899fe3dd4f2aeab46b39adf55","span_id":"a8f313b71de30a37","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2577,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like tracing with TraceLoop OpenTelemetry?\\n\\nBecause they say it has too + many \\\"strings\\\" attached!\"","total_tokens":90,"span_count":6},{"environment":"prd","timestamp":1762875532912,"trace_id":"f211ccc3649ce49ebb5f379f389245e6","span_id":"5e14007190a04996","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2400,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + ***** play hide and seek?\\n\\nBecause good luck hiding when opentelemetry + is tracking every move!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762875527381,"trace_id":"a4d80e8a38620f8057e8b82f55442d1e","span_id":"ce4b33380523f3ec","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2096,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t trace + loop ********** ever get lost?\\n\\nBecause with opentelemetry, they''ve always + got their traces covered!\"","total_tokens":88,"span_count":6},{"environment":"prd","timestamp":1762875518407,"trace_id":"f6d85a873cd71f3178011c78bfe3f31f","span_id":"363e4314cd6bedaf","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1427,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust traceloop opentelemetry?\\n\\nBecause they think it has too many \\\"trace\\\" + issues!\"","total_tokens":90,"span_count":6},{"environment":"prd","timestamp":1762875510595,"trace_id":"27723863f1f31912e557484b35028a7f","span_id":"444802a07e4a2240","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1668,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like the Traceloop Opentelemetry?\\n\\nBecause every time they use it, they + feel like they''re going in circles!\"","total_tokens":100,"span_count":6},{"environment":"prd","timestamp":1762875504586,"trace_id":"778cff9b7ce236170a093da70db72cc1","span_id":"e8c2a4919d560073","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2141,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + use traceloop opentelemetry at the beach?\\n\\nBecause they don''t want to + catch any bugs!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762875499105,"trace_id":"3e16f38a873585cd72aea85e282a8569","span_id":"1dc81f047f1fdc93","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1920,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ******* + use opentelemetry?\\n\\nBecause they always lose track of the punchline!\"","total_tokens":80,"span_count":6},{"environment":"prd","timestamp":1762875492559,"trace_id":"422301f6380204a39d5be637936752ff","span_id":"a0fc5826acd35a09","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2574,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like ********* opentelemetry for their morning coffee?\\n\\nBecause no matter + how many traces they put in, they still can''t find the source of their lack + of energy!\"","total_tokens":120,"span_count":6},{"environment":"prd","timestamp":1762875134977,"trace_id":"07947259563a8ca28f0e127d89836e79","span_id":"22925979afdc12b8","parent_span_id":"","trace_state":"","span_name":"pirate_joke_generator.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_1234","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"pirate_joke_generator","traceloop.span.kind":"workflow","traceloop.workflow.name":"pirate_joke_generator"},"duration":6127,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog break up with *************? + Because it couldn''t handle their plunder!\\n\\n\"","total_tokens":458,"span_count":18},{"environment":"prd","timestamp":1762865984713,"trace_id":"60b71343496d5de8175c102f436593e7","span_id":"7c041e220382472b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3614,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr *****, why did the opentelemetry API + cross the plank? To follow the chicken''s trail and gather metrics on its + voyage! Arrr!\\n\\n **************************\\u2026\\u200b\\ufeff\\n\\nAPI + Mode hides the\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762865976109,"trace_id":"44e199b6d766f3f71934417283c95ecd","span_id":"69b247c62f315587","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3565,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did ************* break up with + her *****? Because he couldn''t handle all her traces and booty! Arrr!\\n\\n\\ud83e\\udd23\\ud83e\\udd23\\n\\nlol. + 5% of you easily got\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762865964100,"trace_id":"bfb165bd79e9a09e9a9634597ef718c4","span_id":"de73baebd89cb9f3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6276,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Avast ye! Why did the Opentelemetry ******** + refuse to go to any parrrties? Because they were too worried about getting + traced! Arrr!\\n\\n ~\\u2026\\u2026\\n\\nuser-generator\\n\\nJoke generation + and share with rave plugin\\n\\nGenerating jokes\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762865956217,"trace_id":"28112445370e9ec3fd0bed9c132367a4","span_id":"0663470b333c77ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2892,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag take up skydivin'' + with Opentelemetry? Because they wanted to trace their code all the way down + to **********'' locker! Arrr!\\n\\n \\uf602\\n\\nYou might consider your short + rope joke in regard to AMQP\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762865947576,"trace_id":"76a845925ced5a08aa78b3cbb21c1ab9","span_id":"72b847e4cba0681e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3768,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project go to therapy? + Because it couldn''t stop tracing its issues back to its wee beginnings! Arrr!\\n\\n + \\ud83d\\ude02\\n\\nIs there a video tutorial about getting started with dynamic + tracing?\\n\\nIs\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762860688164,"trace_id":"bf628477f73b61c52d3c94e0109e3be7","span_id":"ad85c8de496d80c9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4070,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project graduate + at the top of its class? Because it always knows how to trace a good booty! + Arrr!\\n\\n \\n \\u2014 John Hawkes \\ud83c\\udf29 (@hawkesi) January \"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860680825,"trace_id":"b41f432c9d77df8b4d0bb5c2a10d6026","span_id":"2adffbdbf1796562","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2860,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry pirate part ways + with their abacus? Because it couldn''t handle the treasure map.\\n\\n\"","total_tokens":410,"span_count":34},{"environment":"prd","timestamp":1762860660182,"trace_id":"94636d1159e6fbf1b42336a5229e403d","span_id":"1d2434a64b0eb05c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3154,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up wit'' OpenTelemetry? + ''Cause it couldn''t handle their loot! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f!^\\u2693^\\n\\nwhat\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762860651651,"trace_id":"352069d7d78790e0f41ec2446d379d29","span_id":"053f289f3c3593c2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2848,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their matey? Because they couldn''t handle the constant tracing + and monitoring of their ship-shape relationship, arrr!\\n\\n #opentelemetry + #scallywag #daterape #abuse #\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762860643283,"trace_id":"a0bdf0b2555c0750deabaebbc0748292","span_id":"c8f7c0f78be2700f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3413,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the Opentelemetry scallywag go bankrupt?\\n\\nBecause + they be tracking their expenses too much! Arrr!\\n\\n =)\\n\\nSome more folksonomy + around these:\\n\\ntutorial(cvpov)\\n\\n[\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762860635364,"trace_id":"9306e235a77ef52f02f4742a6a47074a","span_id":"711ca09daf310b0f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2910,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry code break up with + its scurvy debugger? Because it couldn''t handle its booty!\\n\\n It was on + the war path with the debugger and they took it coxsack\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762860626884,"trace_id":"2d988533efefc0b37950704ccf3afdc8","span_id":"f2c5268154492ff7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3271,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library break up + with its wench? Because it just couldn''t handle all the loot she was plundering! + Arrr!\\n\\n (I couldn''t come up with anything for \\\"photon\\\")\\n\\nAnywho,\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762860618590,"trace_id":"cbbefa47114b1bd36416eb12c16772bf","span_id":"4d49b13ed57fe409","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3227,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye programmer part ways with Opentelemetry?\\nBecause + it couldn''t handle their booty! Arrrgh!\\n\\n Grrggrh!\\n\\n+4 \\n* Access + now only available for small\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762860609549,"trace_id":"20906e42e0315b7f50aa7be95c9cbbab","span_id":"2d3f4d680b7f2a06","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4018,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + Because they couldn''t track their pieces of eight! Arrr!\\n\\n\"","total_tokens":410,"span_count":34},{"environment":"prd","timestamp":1762860599926,"trace_id":"c28b02ff3de6d6e9bf3401a4683aa48d","span_id":"e66252dcf46d3ef9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4306,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry scallywag + bring a plank to work? To measure their trace spans!\\n\\n Why did the opentelemetry + scallywag go sailing? For datav\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762860591278,"trace_id":"6726bc6e291090c0646608cf9b653fe3","span_id":"219637a310c08b15","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3690,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle the traces of their ship-to-ship + communication! Arrr!\\n\\n \\ud83d\\udea3\\n\\nExample validating a transformer + PS1 file:\\n\\nimport pytype as\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762860583321,"trace_id":"037f79d53ee544c054a20c59d571300b","span_id":"5db9e6e12723caff","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3412,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the observability tool break up with + Opentelemetry? Because it couldn''t handle its loot!\\n\\n #opentelemetry + @opentelemetry\\n\\nTo this version I would add this\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762860573802,"trace_id":"3936090b5028d1a74bfd48a23532e6f8","span_id":"caffee6aa11e2105","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3673,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the buccaneer part ways with + OpenTelemetry? Because it be trackin'' their every step!\\n\\n M )=;\\n\\nI + had so much impro\"","total_tokens":446,"span_count":34},{"environment":"prd","timestamp":1762860566010,"trace_id":"8834e729ee0db5fa6cb27d7322e507e8","span_id":"72492a7fa0c4616d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2837,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the scallywag break up with + OpenTelemetry? Because it be too controlling and ne''er let them trace their + own path! Aye, me hearties!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762860556598,"trace_id":"1048d474902a6b414da80571d7433073","span_id":"4fc2a27d6a0bf318","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4366,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry developer + go broke?\\nBecause they kept spendin'' all their trace/span doubloons!\\n\\n\\nPentathll: + Impressive.\"","total_tokens":446,"span_count":34},{"environment":"prd","timestamp":1762860547003,"trace_id":"10a4a2547d800beba1b0c1f4ca04d3c8","span_id":"f9f7b5a2d03b0022","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4080,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + matey? \\nBecause they kept trying to trace their doubloons but always lost + track! Arrr!\\n\\n \\ud83d\\udc4a\\n\\nWho is eligible:\\n\\nOrganisations + and/or individuals having contributed to an\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860512121,"trace_id":"7b9f056e15dc8ed27e9ccf07fcecb7e3","span_id":"48e08dc37d40f1e9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":30269,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry buccaneer go broke? + Because he couldn''t track his doubloons! Arrr!\\n\\n\"","total_tokens":422,"span_count":34},{"environment":"prd","timestamp":1762860503630,"trace_id":"ab15d7224122fd882344902c1a89cda6","span_id":"f6d97fb1c8372500","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3539,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bankrupt? + Because they could never follow their doubloons'' trail! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nWhat + do you think about Opente\"","total_tokens":456,"span_count":34},{"environment":"prd","timestamp":1762860495903,"trace_id":"c5e4223c1b67a7cc3b736ed7fdde4f19","span_id":"25d67fa0a6d560ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2859,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr matey! Why did the opentelemetry developer + part ways with their calculator? \\n\\nBecause it couldn''t handle the metrics + of their complex relationship, arrr!\\n\\n \\n\\ndjswierad added Skills / + Alignment Aligned{Pun} humor\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860487890,"trace_id":"84415afa6974dd25887e9db4e3af234b","span_id":"672b9b7809ea0561","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3152,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the Opentelemetry buccaneer left penniless?\\n\\n''Cause + they be always followin'' their loot back to the treasure chest! Arrr!\\n\\n + \\n\\u2014 Jeff \\ud83d\\ude80\\u2604 (@jpvery) July 10,\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860480529,"trace_id":"fa5db99822ec17d256c3605832e3357c","span_id":"9eeed58553feb292","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2902,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler bring a compass + when sailin'' the treacherous seas of Opentelemetry?\\n\\nBecause they didn''t + want to be lost in all the traces and spans, arrr!\\n\\n \\ud83d\\udc69\\u200d\\u2708\\ufe0f + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\n\"","total_tokens":610,"span_count":34},{"environment":"prd","timestamp":1762860471956,"trace_id":"11cf55bfa8b7799ef257f1646a3e06a7","span_id":"4554de23c407f4a0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3524,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywags use Opentelemetry? + Because they be wantin'' to trace the path of their good humor to see if any + scallywags be chucklin''! Arrr!\\n\\n That be the finished joke, myst''ries + of the scallywags!\"","total_tokens":586,"span_count":34},{"environment":"prd","timestamp":1762860464149,"trace_id":"aa87cf13db72580aad61549b9ec433aa","span_id":"3632fc39b6f2cdc1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3319,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry go to the therapy? + Because it be havin'' trouble tracin'' its issues back to the root cause, + arrr!\\n\\n (\\n\\nhttps://blog.apigee.com/detail/opentelemetry_aspires_to_scale\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762860455247,"trace_id":"383d7048a3a2f32ea0d1572d438c227c","span_id":"4e1d2ea0385b3837","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4216,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + OpenTelemetry? Because it always traced back their troubles to a time before + they crossed paths.\\n\\n Fear not, they\\u2019ve been at it for years but + never get about past tracing\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860447816,"trace_id":"c9feab8a69d10d9603ddd34bd327a658","span_id":"be08e31cfcccc63f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2871,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry scallywag + part ways with their matey?\\n\\nBecause they couldn''t haul all the tracing + and baggage aboard! Arrr!\\n\\n (again, to emote the pirate life)\\n\\nAdditional + points if you make a\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860439149,"trace_id":"136bea198e39e4d59f2d2e0e2bcfcefc","span_id":"63ca48cc2bc7344e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3633,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry library go + to therapy? Because it had trouble tracking its own self! Arrr!\\n\\n P/s: + I hardly enjoy latka quotes and posters but just can\\u2019t help\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762860431296,"trace_id":"114027d76d0cc196b35d214f28472ce2","span_id":"f32bd038d9f0880b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3039,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry matey go broke?\\n\\nBecause + they spent all their doubloons on tracing! Arrr!\\n\\n Arrr! Arrr! He! Ha! + Ha! Hehehe!\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762860421168,"trace_id":"a4167da239aa1ec80261bccacc2c39ac","span_id":"6725cc8a12222763","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5158,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag go broke after using + Opentelemetry? Because they kept getting traced back to their expensive rum + addiction! Arrr!\\n\\n \\ud83d\\ude42\\n\\n5. Note that we are using OpenCensus + and had no specific intent\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762860412080,"trace_id":"755338cb8ce3cf9777393876531ca00a","span_id":"c1c3bfc917e2f79d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4493,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their reckonin'' device? ''Twas no match for their tangled trail + o'' breadcrumbs! Arrr!\\n\\n Link. -Professor, Op''n Telemetry 2021\\n\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762860402858,"trace_id":"4c92c24d46eed7675589cfcc092c253f","span_id":"17390bfc77f4266b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4168,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring Opentelemetry + to the gathering? Because they heard it be great at tracing! Arrr!\\n\\n Okay, + okay, need some more? Well, er... All hands on deck\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762860388848,"trace_id":"553765834a854969c13c3e5d17b884ec","span_id":"9bc3db87faa57a1f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8893,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project go to therapy? + Because it had trouble tracing its loot!Arrr!\\n\\n If you''re reading this, + go read the funniest anime/manga ever:\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762785955592,"trace_id":"9473d856f0fb069a22e913103a746ad3","span_id":"15bf4ec44889f180","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_075fbbdb96e9af46006911faa3f54481909b61bdc5c807b286","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"60","llm.usage.reasoning_tokens":"0","llm.usage.total_tokens":"79","llm.vendor":"openai"},"duration":2947,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{"llm.prompts.0.content":"Tell + me a short story about a unicorn in three sentences.","llm.prompts.0.role":"user"},"completions":{"llm.completions.0.content":"In + a hidden glade, a lonely unicorn named Luna discovered a shimmering, broken + star. With gentle magic, she mended its light, restoring its brilliance and + illuminating the forest. From that day on, Luna''s kindness made her the guardian + of the night sky, shining brighter than ever before.","llm.completions.0.role":"assistant"},"input":"","output":"","total_tokens":158,"span_count":2},{"environment":"prd","timestamp":1762785143238,"trace_id":"8f05061d17f524e31598c0bcae590fdb","span_id":"0388abb59cba11c7","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_0aee38983ba020f9006911f7778f64819680869db9132ee03b","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"75","llm.usage.total_tokens":"94","llm.vendor":"openai"},"duration":4113,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":188,"span_count":2},{"environment":"prd","timestamp":1762784660114,"trace_id":"05c7f5f57a38549f021056cd1130ad3f","span_id":"b84f4ce2adff578e","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_002f65e8b94d004d006911f59498d88196885818328de36bde","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"82","llm.usage.total_tokens":"101","llm.vendor":"openai"},"duration":4177,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":202,"span_count":2},{"environment":"prd","timestamp":1762783979080,"trace_id":"e9a9702f7018c19df55ccff1c44259ba","span_id":"03376cf854e395e6","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_04187afe5c01e2d7006911f2eb72c4819793ab9276293fc680","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"76","llm.usage.total_tokens":"95","llm.vendor":"openai"},"duration":2590,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":190,"span_count":2},{"environment":"prd","timestamp":1762775860904,"trace_id":"56023bf649c206e89fc2b670f2c66a59","span_id":"d4bdb28ce8ae9690","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3561,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bankrupt? + \\n\\nBecause they couldn''t follow their doubloons! Arrrgh!\\n\\n\\nShroom0Hismom: + Rats! I thought I had identified\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775849822,"trace_id":"89f85cf730dbfbd33fc6018074a1938b","span_id":"7b1185bf2063858e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3742,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the programmer partin'' ways with + Opentelemetry?\\n\\nBecause it couldn''t handle their plunder!\\n\\n \\ud83e\\udd23\\n\\n@bradjamie + Should I apply that joke to the\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775837520,"trace_id":"c4c2dde5f42d62942b358bd86124f756","span_id":"9e7842b78cd58912","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4712,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the developer breakin'' up with + OpenTelemetry? Because it couldn''t handle their high data-ndency relationship, + matey!\\n\\n John Wheeler, 2022\\n\\nad\\n\\nPerformance Issues\\n\\nBeing + a tool built\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762775826984,"trace_id":"fde3ef0c3d4b42a2c6f79b76bb578874","span_id":"062029965266f471","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3561,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog bring a spyglass to + the ship? To aid in their opentelemetry debugging! Arrrr!\\n\\n :pirate_horse:\\n\\nOr + even better: Edit: thanks Darkus!\\n\\n\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775815103,"trace_id":"7b634abb1072632588027d0143cdf1af","span_id":"873fe257d4f4cad1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4707,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry library sailin'' + to therapy?\\n''Cause it be havin'' too many traces o'' codependency! Arrr!\\n\\n + :-) :-)\\n\"","total_tokens":482,"span_count":34},{"environment":"prd","timestamp":1762775804937,"trace_id":"16291a8dcd564cc4416432ad6ad7e7f2","span_id":"d832912953df806a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3433,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry ship break up with + its mate? Because it couldn''t handle the cargo of all their loot and trails! + Arrr!\\n\\n Just a friendly jest to brighten your day.\\n\\nHey bleep coders,\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762775793642,"trace_id":"cf990834616bbd967beded9c2101f85f","span_id":"98049fda3fa9c582","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3663,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause they were always tracing their doubloons! Arrrgh!\\n\\n \\nhttps://stashfiles.com/v/79VG4FSGr\\nhttps://\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775781627,"trace_id":"081b9350a02a2413ab2ef94acc9a3644","span_id":"fc56886362e17250","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4762,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke?\\n\\nBecause + they lost track of all their treasure maps and loot! Arrrr!\\n\\n (\\u23de)\\n\\n\\ud83d\\udd17\\u200b + why-vs\\n\\nWhy the burrito\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775768767,"trace_id":"2807154e3303c8da1f1d40999049601e","span_id":"c6fb29708418bfa8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5151,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer go broke? + Because he couldn''t follow his doubloons!\\n\\n \\ud83d\\ude1c \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nNot + my joke, but\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762775756509,"trace_id":"eeab44f6100c0e544403535b9ffdc022","span_id":"78ab1a23ca24d493","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4428,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry part ways with the + other scallywags in the software world? Because it yearned for more \\\"trace-ability\\\" + in its relationships, arrr!\\n\\n Tune in next year \\u2014 now that we''ve + had two weeks to cram more references\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762775745172,"trace_id":"724fa136632254633d70531259ff8086","span_id":"38162041bba3fa98","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4736,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry go to the party alone? + Because it didn''t want any scallywags following its trail! Arrr!\\n\\n \\ud83e\\udd7a\\ud83d\\udc85 + Help! I don''t know.\\n\\nDrop them a comment\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762775734015,"trace_id":"69a5928c1b79ecde6aebf4b741a08acb","span_id":"7091efda2f5aacb8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3187,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the OPentelemetry buccaneer bring + a ladder to the coding shindig? Because they heard it be a fine tool for tracing + \\ud83d\\ude09. Arrr!\\n\\n Read more\\u2026\\n\\nBe Assertive. Be Positive. + Be Here. Be Human.\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762775722066,"trace_id":"6677529419af262952cc36f952cb9ef0","span_id":"efb0e8fcd84b11a0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4126,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag install Opentelemetry?\\n\\nBecause + they heard it be a grand way to trace their steps and not get lost in the + code! Arrr!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762775707960,"trace_id":"3d81ea952f9d1e2fae80a7016382523d","span_id":"ee20de3375541421","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6223,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Yarr matey, why did the scallywag break up + with OpenTelemetry? Because it was always tracing their every move! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nReal-Time Upserts with Lamson\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762775695005,"trace_id":"411b3403521ba1d4158d7c060a99a365","span_id":"77a4b8ceb1718e86","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4192,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag toss Opentelemetry + overboard? ''Cause it couldn''t handle their plunder! Aargh!\\n\\n [Image: + :pirate_flag:] [\\ud83c\\udff4\\u200d\\u2620\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775684156,"trace_id":"a571d6eeb6443ed93e0728c03fc0bf19","span_id":"ab8fd84972a01db4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy opentelemetry developer + go broke?\\n\\nBecause he couldn''t track his pieces of eight efficiently! + Arrr!\\n\\n DISCLAIMER(I sort of stumbledover on the damned what had been + my private account here\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775668562,"trace_id":"cba900a0eb151af4529f23b39a87df66","span_id":"502eeb2b38daccd6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5102,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke?\\n\\nBecause + they be always be collectin'' traces but never addin'' any values! Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762775659547,"trace_id":"c68d479688d5900f51b52e15ea132e89","span_id":"eb8bdd20cfc15d9b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2858,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\nBecause + they kept tracing their doubloons and lost track of it all! Arrr!\\n\\n\\nOpethashKnifeLenght: + \\u2611\\ufe0f \\u2611\\ufe0f \\u2611\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775644254,"trace_id":"24ac559bf9216b9f7d6d68f7af7d0e88","span_id":"1bbf105504b4c1fe","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6006,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go bankrupt?\\n\\nBecause + they be always trackin'' their doubloons! Arrr!\\n\\n Geehaw!\\n\\nApparently + skip the introduction to aliases\\n\\nIf the arrival of the\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775634693,"trace_id":"85afcd799d91a5913e012224a6a6f911","span_id":"c26094211df18ac9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3519,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the opentelemetry framework + bring a spyglass to the parrrty? Because it wanted to be sure it was tracing + all the fine details!\\n\\n \\u2014 Copernicus\\ud83e\\udd16 (@ParametricBot) + February 19,\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762775622819,"trace_id":"71aa87c7d388ee230e27035e0df2ce1e","span_id":"d4b4eca4783170d2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4849,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t track their doubloons with all those open-source logs!\\n\\n + Why did the opentelemetry scallywag go broke?\\n\\nI''m familiar\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775606808,"trace_id":"c5cbea7dd622e781f43923c2b40ddc78","span_id":"c343012d6d8795b9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3642,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project get invited + to all the parties? Because it always knows how to track a good time, arr + matey!\\n\\n pic.twitter.com/vu3SBOTrcG \\n \\u2014 Marc Verwer\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775595553,"trace_id":"acdc0405db218f261adc35c49b167be4","span_id":"2e82401f54912747","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5166,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke? + Because they couldn''t be tracin'' where all their doubloons went! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\nAnonymous1u5now 201\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775585605,"trace_id":"3bb5c80a23eaba409d3f010039774055","span_id":"b34246544fe8806b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3528,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + Because it couldn''t handle their plunder! Arrr!\\n\\n \\n\\nRepository for + spark with https://github.com/opentelemetry/opentelemetry-java\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762775573157,"trace_id":"2192b6ad5a7d6efba67b5ec9982008b3","span_id":"ce9d0966ebeda6e7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3942,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Twas too clingy and forever wanting to trace all! Arrrgh!\\n\\n https://t.co/xRsumcKFam\\n\\n\\u2014 + Explore and Conquer\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762775553865,"trace_id":"699d7e5cc072cef959e0db5b2bba6d79","span_id":"d8288ec5968a3522","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4050,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a spyglass to + the Opentelemetry gathering? To assist in tracking down them tiny critters! + Arrr!\\n\\n \\ud83d\\ude0e\\n\\nNo related posts.\\n\\nHere\\u2019s be th\\u2019 + Firs\\u2019 annual\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762775543847,"trace_id":"6268b28bfc6439dd2b620d3f09b52f62","span_id":"020bc29266ed741c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4675,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arr matey, why did the opentelemetry scallywag + go broke? Because they couldn''t trace their doubloons! Arrr!\\n\\n\\ud83d\\ude06\\ud83d\\ude06\\n\\nThis + is literally me I can identify with this A++\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775533158,"trace_id":"1dcea007f4cd4a4a13f8580b2d6870dd","span_id":"d476459c721dad7d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3246,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye scallywag sail away from Opentelemetry? + Because it couldn''t handle their loot! Arrr!\\n\\n (inspired by a meme)\\n\\nThe + next part that i was sorta struggling\"","total_tokens":444,"span_count":34},{"environment":"prd","timestamp":1762775520363,"trace_id":"90dbcc3e810615d56cd824bf078327b5","span_id":"5078dacc1a972fc6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5402,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry crew cut ties with + its wench? Because it couldn''t handle the weight of all those traces and + metrics, arrr!\\n\\n \\n\\nNo one can see the ''graveyard'' until the deck + is stacked against\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762775417577,"trace_id":"cbf5199799a08e8732e478fe46b2a7a8","span_id":"6b8d43971e7d6fcc","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5258,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy dog use OpenTelemetry? + To trace their problems back to the source, matey!\\n\\n He swaggers away + into the sunset, and you laugh at his boot-\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762775403936,"trace_id":"bd7a2da05bec2f29078900644918160e","span_id":"aed7db40b9db984b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7540,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arr, why did the Opentelemetry scallywag + part ways with their calculator? ''Cause it couldn''t handle all the traces + and metrics, arr!\\n\\n\"","total_tokens":488,"span_count":34},{"environment":"prd","timestamp":1762775390195,"trace_id":"438596ff908c3f548826c9aadfba675f","span_id":"a41d61a0dd36871b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4925,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go busted? ''Cause he couldn''t be tracin'' his loot! Arrr!\\n\\n?\\n\\nThen + in the next bag you pull out only chocolate coins!\\n\\nMore hashism\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775378010,"trace_id":"a48c43e75158c6045855e71934e44072","span_id":"15ff08da12657158","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4583,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag install Opentelemetry? + Because he couldn''t follow his own trail without it, arrr!\\n\\n\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762775365786,"trace_id":"62dfccd9b74191c3574a14f0d1bf8e13","span_id":"97ef15d836de403c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6226,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry toss the networking + protocol to the sharks?\\n\\nBecause it couldn''t handle the weight of all + those treasure maps! Arrrr!\\n\\n \\ud83e\\udd23\\n\\nIllustration by Adam + Teague\\n\\n#Opentelemetry\\n\\n\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775354906,"trace_id":"59682a7725a4dd42f2eea11a5d54f6f8","span_id":"983b7be0d44be784","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4253,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + Opentelemetry? Because it couldn''t handle their booty! Arrr!\\n\\n :pirate:\\n\\nFinal + Thoughts\\u00b6\\n\\nWe created an application in Flask that writes\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775344019,"trace_id":"576684ceec56843cefb1dadb8d6a645a","span_id":"78be3a546c03a5d4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4124,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, matey! Why did the scallywag bring + a compass to the Opentelemetry conference? To navigate through all the traces + and spans, savvy!\\n\\n **Editor\\u2019s Note: This joke is a spoof. No organisational + relationship is\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762775314952,"trace_id":"3929b803d6eff1d6784ce0c0a49bdf36","span_id":"45fe4aa168951940","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":21712,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer part + ways with their matey? ''Twas because they couldn''t handle all the loot they + be haulin'' around! Arrr!\\n\\n And then he grinned with glee And retorted + yeeyah, I be\"","total_tokens":544,"span_count":34},{"environment":"prd","timestamp":1762775301603,"trace_id":"56b81992d0d3461ca1940ce2a54edf64","span_id":"f228fb4269b5f5cb","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6909,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go broke?\\nBecause he kept trying to trace his doubloons!\\n\\n \\n- I Know + Minutes after rereading Natalie Dahl''s \\\"I Know\\\"\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775290083,"trace_id":"f3f9134a25e1417be43691c22a7cbf19","span_id":"046933808ecb6f30","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5143,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go to + Davy Jones'' locker? Because he kept collecting traces without ever making + doubloons! Arrrr!\\n\\n (I''ve been editted by @Krug)\\n\\nBut in praise of + The\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762775279444,"trace_id":"2337d4f4cb511095eca68cc441cd8e0e","span_id":"33ea9d744354fa4c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3692,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry developer part ways + with their significant other, ye ask?\\n\\nBecause they couldn''t be handling + the constant tracing and monitoring of their relationship, arr!\\n\\n Ya see, + instead on being going on dates or getting time to meet and talk\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762775266882,"trace_id":"6bdb7916feead1af63c4822a88925fe8","span_id":"87a141bfe5e7542b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4502,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause they be always collecting traces but never had any spans! Arrr!\\n\\n + \\n\\n\\n\\n\\n\\nYAARRRR!!!\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762775253073,"trace_id":"7a61392547fd85c667f33075af2eabc2","span_id":"7bf4bc396dfb17f0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4194,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it couldn''t handle their booty!\\n\\n (sorry, just had to do it).\\n\\nNaah, + I think its rather\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775241096,"trace_id":"c55867eb170e92d666fa7ee593408ac6","span_id":"84ab6f4c64c9dd68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4042,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask? Because every time they tried to trace their expenses, they got lost + in the distributed transactions, arrr!\\n\\n On a voyage for Blah, they dutifully + submitted required information to \\u201c\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762775224080,"trace_id":"249fde3beeb4bfac26ba32adccb78f54","span_id":"f73a534ec54e004c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5518,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why be it that the opentelemetry scallywag + be parting ways with their matey? ''Twas because they couldn''t handle the + constant tracing and monitoring of their shipshape relationship! Arrr!\\n\\n\"","total_tokens":584,"span_count":34},{"environment":"prd","timestamp":1762775208371,"trace_id":"0e1c9b7b49806435c897f47a24ded9f6","span_id":"edd58191d3053145","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8707,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry code sit in the + dark corner?\\nBecause it be not able to trace its way out! Arrr!\\n\\n I + could seek more if you please!\\n\\nI trust you enjoyed the cross-language + play\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775197875,"trace_id":"2fff99798d112618d097028eb04f1ea9","span_id":"59429f0185316db2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4198,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the opentelemetry framework + part ways with the scurvy tracing library? Because it couldn''t handle the + heavy baggage! Arrr!\\n\\n \\u2014 Scott Thiemt (@ScottThiemt) September 3, + \"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775186146,"trace_id":"9fa695af6f7c06f8e9eacb055cbe9b75","span_id":"9c36231727b771d5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4859,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry developer + go broke? Because they be always tracin'' their doubloons!\\n\\n*\\n\\n*NB: + Please note that many pirates were slaves. Do not translate this\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762775172403,"trace_id":"69735492db8435118f5ab162117921f7","span_id":"a66e34326d5461a7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4773,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library go to therapy? + Because it be feeling measured and traced all the time, arrr!\\n\\n \\u2261 + flarum/wall Message\\n\\nThis one is harder to guess.\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775162232,"trace_id":"4f193c8f0ea2069f6dd5d775067d76db","span_id":"a871447570190e3b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4578,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag go broke tryin'' + to implement OpenTelemetry? ''Twas because they couldn''t trace where all + their doubloons went! Arrr!\\n\\n /giphy horrorscope-with-architecture\\n\\nThere\\u2019s + also a possibility of changing\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762775148189,"trace_id":"3c3e8d4a8cd0aae33ef0027a5c19e3b4","span_id":"735fd724bbbe3952","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5752,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer break + up with their matey? Because they couldn''t handle the heavy cargo of all + that tracing and logging! Arrr!\\n\\n ^^^^^\\n\\nNot So Serious\\n\\nAnnouncing + the Availability of Nitro, Google\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762775136242,"trace_id":"e473d729f7d5db5c60d927a6ca0a1b1a","span_id":"9e296f36cefb00d8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2755,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with Opentelemetry? + Because it couldn''t handle their plunder!\\n\\n\\nOP: Yeaaaaah! Hadn''t had + that one yet! Brilliant\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775123420,"trace_id":"f42ac6589bbfd0f08242005e2f3afdba","span_id":"0d23849ab6f731b2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5067,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it be always tracing their every move, arrr!\\n\\n #prometheusjs #cli\\n\\ny''see, + it''s funny if you\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775108234,"trace_id":"d0c09d5128156cc4529a7cd219177e74","span_id":"2b905d5b1e0a05fd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4258,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag break + up with their mate? Because they couldn''t handle the plunder of their past + traces!\\n\\n Give us your jokes!\\n\\nSignatures\\n\\nA signature is crucial + when talking about the\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775097352,"trace_id":"53704c161358ca33de40f9e98dacd1ee","span_id":"fe35c75530b30e3f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3828,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a compass to + the Opentelemetry conference? To navigate the treacherous waters of telemetry + data and avoid getting lost at sea! Arrrrr!\\n\\n Why did the scallywag bring + a compass to the Opentelemetry conference\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762775082445,"trace_id":"4ed52b5dce9a0d9b4459b812e550a2d2","span_id":"6108e110c68c79c6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3956,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry mate always calm? + ''Tis because they could always trace their steps! Arrr!\\n\\n Happy halloween!\\n\\nHelp + hunt a Hacker\\n\\nCyberMentor\\n\\nTwo\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762775069391,"trace_id":"c1bb2fee1f5214bdd0ea833b989cd566","span_id":"70ba95f88c81d899","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6709,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + matey?\\n\\nBecause they were always tracing their doubloons! Arrr!\\n\\n + \\u2620\\ufe0e\\n\\nNeat! Thanks for sharing - reduce() , map\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775058332,"trace_id":"5d65064c5debc8a60b97170f9baade36","span_id":"1c0aed5b77ed0ebf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4549,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did t'' opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t spyglass where all their doubloons went! Arrr!\\n\\n\"","total_tokens":458,"span_count":34},{"environment":"prd","timestamp":1762775042772,"trace_id":"6d9d5003dc3b6373b754e57265279af3","span_id":"c717d054a870a88d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4964,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go swashbuckled? + Because they kept losing track of their traces, arrr!\\n\\n?\\n\\n(If you + don''t get that last part, please remember to consult Michael\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775030940,"trace_id":"c935cf2fdd4f60ce52d8658bf97f9ed7","span_id":"345ed542ef29c4a9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3605,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry? + ''Twas no good in keepin'' their trace affection! Arrr!\\n\\n These were bad. + Come up with your own \\\"Who''s the guy?\\\".\\n\\n\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762775018965,"trace_id":"0562c00381455e099e31a58f12a478eb","span_id":"061144036f690db3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3915,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer walk + the plank with their matey? Because they couldn''t handle the constant tracking! + Arrr!\\n\\n Only shamrock you''re on a ship! Thank you, thank you, I\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775002814,"trace_id":"bc9ef653dff2509884f4466d406ac947","span_id":"b0057f7dff90c15b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag scuttle with OpenTelemetry? + ''Cause it couldn''t handle the binding to trackin'' all their booty! Arrr!\\n\\n + Tweets by Sophist Satellites\\n\\nLike, Share, Enjoy\\n\\nSanta Space Crus\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762774988949,"trace_id":"03a9747d7450995fb951c08809218f83","span_id":"bb3c652f72a3c079","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3909,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they spent all their doubloons on traces! Arrr!\\n\\n Chuk!\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762774972534,"trace_id":"046a17988791c4587fcbe5507bc1430e","span_id":"2dfacec9ebf29a68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4048,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye opentelemetry code break up with + the debugger? Because it couldn''t handle its booty! Arrrgh!\\n\\n Look what + ye crosshatched yourself into! Arrr!\\n\\nThe Yarrr\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762774960034,"trace_id":"7cd645e79ddc8a0aa6c960e2035595de","span_id":"9ab90bca4dd7f84d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6078,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\nBecause + he kept trying to trace his doubloons!\\n\\n\"","total_tokens":404,"span_count":34},{"environment":"prd","timestamp":1762774943829,"trace_id":"2b6942b7519466a82ae9024133f9a72a","span_id":"670b7e94fe6e9f5a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":9820,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go poor? + \\nBecause they always kept spending their traces!\\n\\n \\n\\n\\ud83d\\udc4d\\n\\nGoddamnit + this thread should be frontpaged.\\n\\n\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762768685146,"trace_id":"7de43b9d1fe63737ad41c457d7c9d65f","span_id":"78b6c55a07368872","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4251,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with Opentelemetry? + Because it kept tracking their every plunder!\\n\\n \\ud83c\\udf0a\\n\\nYou + can read the full conversation on HN or Smallest\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762768673834,"trace_id":"f9a19088aecb8c673120549516a0b6be","span_id":"e31fb2f5daa6d585","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4949,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry scallywag + break up with their scallywag matey?\\nArrr, because they couldn''t handle + all the marks of their ex''s past flings!\\n\\n\"","total_tokens":578,"span_count":34},{"environment":"prd","timestamp":1762768656170,"trace_id":"36303e053c26cf96ff2bc263f235e077","span_id":"1ed56dddbab5e857","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3408,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the scallywag part ways with Opentelemetry? + Rotten because it couldn''t handle all the cargo in their sailin''!\\n\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762768647120,"trace_id":"88e36825d45366f487f7c424ddf65505","span_id":"c3e6f960f1ac3306","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3946,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they kept tryin'' to trace their doubloons flow but it always ended + up gettin'' lost in the trace context! Arrr!\\n\\n\\n6callion: CRISTIANOPENTETICALMOMIES!\"","total_tokens":628,"span_count":34},{"environment":"prd","timestamp":1762768636361,"trace_id":"31ec0417c5b66ab64c3ce4daa1a4db85","span_id":"e635edd3e7e8bda3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5932,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they be always tracing their doubloons! Arrr!\\n\\n \\u2620\\ufe0f + #apitweet\\n\\nOpentracing is an open source standard\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762768625672,"trace_id":"bc3cb493dbd4267d8929ecfb869b3696","span_id":"0389ed590a9b9ba7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry? + ''Cause it couldn''t hoist their cargo! Arrr!\\n\\n What does Captain Morgan + call his armored tank? His breastplate! Who was trying\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762768615339,"trace_id":"524d0ebbb4ae332d3df47df4294eb0bf","span_id":"7550c4d8643fb8af","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3461,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag bring + a ladder to the code plunder? Because they heard they needed more tracing! + Arrr!\\n\\n\"","total_tokens":458,"span_count":34},{"environment":"prd","timestamp":1762768604699,"trace_id":"e9de05cc8e2d936c458b850b7961d9b6","span_id":"385d56a06b0995a6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3420,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with their significant other? Because they couldn''t plunder their relationship + back to the source! Arrr!\\n\\n \\u2022 8\\u2014 8(\\n\\n) \\u00f7 0_-_\\u00ac + \\u2227 \\u2227\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762768591787,"trace_id":"94f8864b150ce8d8dc4a3a7eefc25eb9","span_id":"f96ec7543b8ca601","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5807,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy software developer + abandon OpenTelemetry? Because it couldn''t handle the commitment to be following + all those logs!\\n\\n ... OK that''s terrible, I''ll just show myself out.\\n\\n![angry\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762768580980,"trace_id":"4248c4085bf2500b25e3eb13ceaef277","span_id":"0419a239b0c20089","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4413,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag bring + a ladder aboard? Because they heard they needed to trace their steps! Arrr!\\n\\n + Yar! Ye nuclear space galleon has landed, and yer sculled\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762768568221,"trace_id":"296dfea50ee536cf9f54255a2e83fa54","span_id":"099eceeedccd32bf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5892,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause he couldn''t keep track of his doubloons!\\n\\n\\nEyeOfViper: + Good one \\ud83d\\udc4d\\ud83c\\udffc\\ud83d\\ude42\\n\\n\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762768556455,"trace_id":"415f1b00246d28311afe2c5a78d8944d","span_id":"996b32d0e78cdfa0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3232,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the scallywag bring a compass + to the Opentelemetry conference? To help chart a course through all the traces + and spans, matey!\\n\\n\\u2026\\n\\nread more\\n\\nCongratulations to the + anthem tool, and to all of the As\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762768541331,"trace_id":"1539b27904c5725598d3381d37101356","span_id":"f56f6466446e4655","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4484,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke?\\n\\nBecause + they be keepin'' too close an eye on their booty! Arrr!\\n\\n\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762768531574,"trace_id":"7d988c8161af21c7797dbbd2c136b345","span_id":"9b8401fdcb9ab7d2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3805,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag break + up with their tallying device? Because it couldn''t handle their intricate + map-making! Arrr!\\n\\n More Karate Jokes \\ud83d\\ude05\\n\\nfind more terms + in the Go glossary\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762768520279,"trace_id":"cddf266a0f01090a3095f383594319c6","span_id":"2d787e31fcb4c81a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4296,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with their + significant other? They needed more sea for charting their own courses! Arrr!\\n\\n + https://t.co/8dmRWpjyys\\n\\nThe importance of an\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762768506474,"trace_id":"b233228c5377c3e07c143e302158fd91","span_id":"f6e41ee37ad55b43","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4305,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + \\n\\nBecause they couldn''t spy their expenses! Arrr!\\n\\n\\u2026 Continue + reading \\u2192\\n\\nAvataraGarilaka: Prasyunakan Indonesia\\n\\n\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762768492059,"trace_id":"599c3eefb61f865623ee4e5497413e75","span_id":"dba079e88ebbc18f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7012,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog programmer refuse + to use Opentelemetry? Because they be just too closed off to the idea, arrr!\\n\\n + Acabei! Acho que eu assinei a primeira altcoin do mundo\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762768480645,"trace_id":"753bb41fb921430c427d0eae599cd593","span_id":"7aeb84d53a921ea7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4539,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? Because they couldn''t hoist the extra weight of all + their tracks and logs! Arrr!\\n\\n \\ud83d\\ude1c\\n\\nWe are thrilled that + Karka from OpenTelemetry is now\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762768471256,"trace_id":"4ad919060b66de1ca2e2920306627f7f","span_id":"4a6bb4c0d6ab7fd0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3844,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry part ways with Prometheus? + Because they couldn''t bear the burden of being in a forever watched relationship, + arrr matey!\\n\\n (Source: Author suggestion via Hacker News.)\"","total_tokens":494,"span_count":34},{"environment":"prd","timestamp":1762767601020,"trace_id":"3b28406fee5e3668e8fcfe49716348b0","span_id":"f32060cb47256fd6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":862703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? Because they couldn''t bear the weight of their tracing + bond! Arrr!\\n\\n \\ud83c\\udf85\\n\\nDownload WordPress Themes\\nDownload + WordPress Themes Free\\nDownload WordPress Themes\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762767589091,"trace_id":"3e4bddcc162dcb5e9d61ca0f13a6d40e","span_id":"7d9943c5149c6d5c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3966,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go broke? \\n\\nBecause they be always tracing their doubloons but never following + them! Arrr!\\n\\n \\n(BONUS: Why also are they booted from the Proulx crypt\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762767577359,"trace_id":"44aa5e0e02cdbaa6822f327ceaacab0d","span_id":"97d97c1945a15375","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3637,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t trace where all their doubloons went! Arrr!\\n\\n Joining Ambassador + stem here to discuss this blog post are Ambassador engineers Ryan Howlett\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762767556094,"trace_id":"93c7f8b17b9e78bc6e31886ed82a28df","span_id":"f151bd39a6d4a9ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":14131,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag developer part + ways with OpenTelemetry? ''Cause it be spyin'' on their every step!\\n\\n + (By using insecure allusions, winky faces and convoluted exchanges,\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762767541619,"trace_id":"46da14cc0e888b437ae052e8216b2964","span_id":"e74810af8183eae5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5100,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog programmer part ways + with opentelemetry? Because it couldn''t handle their treasure chest o'' baggage! + Arrr!\\n\\n Absurd as the old joke is, I''m gonna stump you guys with an\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762767530261,"trace_id":"e6957a531007781f3dc5b46ac14f18b7","span_id":"10da02aaa3eb7031","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3502,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag data engineer get stuck + in a loop with Opentelemetry? Because they couldn''t trace their way out, + arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762767208369,"trace_id":"c5defbf252a0379e134fbf68756f817d","span_id":"0f1290030ce9e480","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4611,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? ''Cause they couldn''t juggle all the loot of their + traces and metrics! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\nInquisitorially: + If this\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762767193128,"trace_id":"0e51e5aea5db604327ea357986d2d71e","span_id":"ac60641dad354de3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemat''ry code break up + wit'' th'' debugging tool? \\n\\nBecause it couldn''t handle its baggage, + arrr!\\n\\n \\n\\n=PBs. :) \\n\\nLove, J.D. \\n\\n JVM Languages Inst\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762767183015,"trace_id":"006b799159008f75f18b05bbcf180d68","span_id":"a6d47187810c52a3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4636,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy programmer bring + a ruler to the Opentelemetry conference?\\nBecause they heard they were measuring + up to some serious data performance!\\n\\n Arr!\\n\\nCollapse Expand \\n\\nIt''s + been a long time since I did anything with\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762767166056,"trace_id":"d2bd4ed1ce17212dc63a699f343eb6c3","span_id":"721a11af38cd3267","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3136,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the developer part ways with OpenTelemetry? + ''Twas because it couldn''t be handling their baggage! Arrr!\\n\\n #Foster + #SkepticalAutometry\\n\\nThe system should possess authority (\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762767151563,"trace_id":"df19e0f72f25e440699a73fbb87babe5","span_id":"a63d9f4ac5921efd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4379,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry data refuse to + go to the pirate party? Because it be already being traced! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nGot + others? \\ud83d\\ude42\\n\\nIn \"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762767138271,"trace_id":"aa2dc9f6daf4f681c1fbea2fbd48ab3e","span_id":"8bdcd39d7563ae91","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3785,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry framework go to + therapy, ye ask?\\n\\nBecause it couldn''t handle all the tracin'' and baggage + it was carryin''! Arrr!\\n\\n \\ud83d\\ude09\\ud83c\\udfa9\\n\\nMaybe if you + were to request it via an RFC,\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762767120937,"trace_id":"39051439cea065e1518f501c5bf5b0df","span_id":"2700b97e5faca561","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5201,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, matey! Why did the Opentelemetry scallywag + part ways with their debugger? Because they couldn''t handle the trace! Arrr!\\n\\n + Yarrrr! Argh! Those are a few relevant signature ideas.\\n\\n\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762767107353,"trace_id":"5a5fd7ee5f9df6ea60491e21b62302bc","span_id":"a8471585a0de02f9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4265,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler part + ways with their mate? Because they couldn''t bear the weight of all the loot + they were lugging around! Arrr!\\n\\n What do you call a fedex driver''s contraband? + What do you\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762767095084,"trace_id":"b2a9e9d6b4a0186bb30ea639cdfbd4fa","span_id":"be5e5278842898d3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3969,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + opentelemetry? Because it couldn''t bear their heavy plunder! Arrr!\\n\\n + { \\\"props\\\": {\\n\\n\\\"name\\\": \\\"sawson\\\", \\\"context\\\": {\\n\\n\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762767080930,"trace_id":"42524bbe9ce55e2f0b8a340b92dd8bfe","span_id":"0e190235323adc2b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + Opentelemetry? Because it was just too clingy and always wanted to trace their + every move, arrr!\\n\\n (random number generator)\\n\\nAhoy argh matey! (random + number generator\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762767067940,"trace_id":"ea3682f636493706cb76833038f20222","span_id":"efc060486cdd2282","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3657,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag get lost in the woods + using opentelemetry? Because they kept tracing their steps, arrr!\\n\\n \\u26f5\\ufe0f\\n\\nFun + facts\\n\\nOP5 was the OP8 of the\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762767053756,"trace_id":"a650f773584d08fb3407a34f80e0fe4d","span_id":"4e9282ee9b5c6a90","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4533,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developers go to + therapy? Because they couldn''t be replacin'' their problems back to the source, + matey! Arrrgh!\\n\\n newton I just finished coding my annual MVP award submission + for work. Can anyone\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762767036582,"trace_id":"dfe853ff8020edf5a8376ad535b6338d","span_id":"a423708403cc9931","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6587,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer break up with + OpenTelemetry? ''Cause it just couldn''t commit to a stable matey-ship! Arrr!\\n\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762767025184,"trace_id":"958b28157347a1a3270a113bbc9a39b6","span_id":"7c2f378b748c9777","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5910,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with its lass? Because it couldn''t handle all the booty she was hoarding! + Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762767015388,"trace_id":"acd3840bb089cf42d9a79e1f30035502","span_id":"7403b41bdce4bc26","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3155,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + Opentelemetry? \\n\\nBecause it couldn''t handle their booty!\\n\\n \\n^(*This + joke even scans well with the gender of the joke-teller\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762767003971,"trace_id":"78a9299d29178336277ce6bcb67a5ddf","span_id":"001a3214635e9fb1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5009,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + \\n\\nBecause they kept losing their traces! Arrrr!\\n\\n\\nMockingJNotable: + Why did the bush of opentracing bear\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762766979117,"trace_id":"9002b67b15f0e3797a56caa8f16722ab","span_id":"6799dbbd52730301","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":15098,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr matey, why did the data center be breakin'' + up with Opentelemetry? ''Cause it couldn''t handle all the baggage it be bringin'' + along!\\n\\n\"","total_tokens":506,"span_count":34},{"environment":"prd","timestamp":1762766964773,"trace_id":"5e3c7805592eb4131fa9ca541199e18e","span_id":"3ef079d3a21c1be6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4063,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library maroon + the codebase? Because it couldn''t handle its plunder! Arrr!\\n\\n Okay, okay, + my jokes are embarrassingly dumb. ;-)\\n\\nAlas,\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762766955127,"trace_id":"9ff9f89ae76890d1794c359b04916d58","span_id":"1f0a59bde66a6bda","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2845,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry pirate go broke?\\n\\nBecause + they were always charting their doubloons!\\n\\n Takes a second to commit + but once you''ve got a sustainable funding model, you\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762766944011,"trace_id":"57f552e5018b977b41732e082aba1470","span_id":"16dba6737cd3f81b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3780,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle the weight of all that + tracing and monitoring in their treasure chest! Arrr!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762766932915,"trace_id":"da9521faf73d0c23f335c68bb6725551","span_id":"caca4c21faa4a11f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke?\\n\\nBecause + he was always spending all his traces! Arrr!\\n\\n Aye!\\n\\nI try, at least!\\n\\nHonOURABLE + MENTION\\n\\nLastly\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766921046,"trace_id":"22cbcb5b40a8eecfefe157097c3aa6af","span_id":"413b88f507cdcd3c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4870,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag go to the tavern? Because + they couldn''t stop charting their problems with OpenTelemetry! Arrr!\\n\\n + I see your anchor you lead netwurker. I opt to opt for\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766908285,"trace_id":"09b6318b8bc2578fd82ea7ec6b90a9f5","span_id":"71a5854cafe678bd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2974,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler part + ways with their matey? Because they be wearied of always being tracked back + to their booty! Arrr!\\n\\n submitted by /u/coloquadrilla [link] [comments]\\n\\nCopy\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766897343,"trace_id":"3160c88d93e682f951cd87e4c34e937f","span_id":"0aaeafe9145c2882","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4074,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry scallywag + run out of doubloons? Because he be losin'' his traces at sea!\\n\\n Arrr! + \\n\\nA more risque joke:\\n\\nArrr, do you have\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762766885715,"trace_id":"322dadae4996655f91abfae91e18d2ad","span_id":"b023c24362d15498","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3387,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag split ways with Opentelemetry?\\n\\n''Cause + it was forever tryin'' t'' trace their every move! Arrr!\\n\\n Now that''s + a good joke.\\n\\n[Image] [Defining CNI](\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766874913,"trace_id":"eb1145bf197d2a24246db39ec60d0987","span_id":"4acf30ee78f0c6ef","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4085,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag switch to usin'' Opentelemetry? + \\n\\nBecause it be the only thin'' that could trace his rotten code!\\n\\n + \\n\\nWo ho ho!\\n \\n\\noriginal comment by iainc on 2021\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762766863851,"trace_id":"cdfe9fe01d2639bb950bb2efe86b5e5a","span_id":"03d583dc52b1fded","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3902,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a spyglass to + work with Opentelemetry? To help him spy all the tiny bugs! Arrr!\\n\\n \\n\\nBy + standardizing the definition of requests, spans, traces, and metrics in\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766847062,"trace_id":"4f3bd9f0f658e5a6e3000b6e48dac967","span_id":"4a4ac677e902b250","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5810,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy programmer bring a map + to the Opentelemetry conference? Because they heard they be tracing some serious + paths! Arrr!\\n\\n...\\n\\nRead More\\n\\nEver keen to fling yourself into + the vast embrace of monitoring\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766836090,"trace_id":"3d8f0808433b5d4eb5cad25e06f35645","span_id":"8807e3a770b70f09","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3465,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag sever ties with Opentelemetry? + ''Cause it couldn''t bear their plunder! Arrr!\\n\\n \\ud83d\\ude0e\\n\\nThis + is all for jelious!\\n\\nI still need to talk to\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766825982,"trace_id":"29bbc06aee05d1a3cb85f9e177d58d45","span_id":"e71f00df5c8c60ab","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4796,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with their + wench? Because she couldn''t handle all the plunder they were carrying! Arrr!\\n\\n + Why did Opentelemetry break up with their wench? Because she couldn''t\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766814928,"trace_id":"0392f2c1e8742ec8d9a00531b5e78ab1","span_id":"8fe91c1d8dea5ca6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4386,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did Opentelemetry break up wit'' + its lass? Because it couldn''t handle all the booty she be carryin'' around! + Arrrrr!\\n\\n M''lady! I know arrrr ticket to your heart!\\n\\nAhoy,\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762766799080,"trace_id":"8e1a287af097dafef65ca6e081a1ca33","span_id":"ec75cc01f4bd09d4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5810,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry data decide to + become a stand-up buccaneer? Because it always knows how to sail a good line! + Arrr!\\n\\n - The Edge confusionism\\n\\nInsert funny reaction\\n\\nCreate + your own thread! !\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766787717,"trace_id":"771a95352d415f2d6312356d8c21a837","span_id":"bf9960ce30b6178e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4735,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with its wench? + Because it couldn''t handle her loot!\\n\\n \\ud83e\\udd23\\n\\nvar B = function() + {\\r\\n const exampleSchema = new\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762766775995,"trace_id":"2dd7c823137d21968cc0b63235a0ff5c","span_id":"82427d50e2dcf773","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4215,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry cut ties with its reckonin'' + device?\\n\\n''Twas no match for its convoluted data! Arrr!\\n\\n Happy logging.\\n\\nAlex + Shaposhnik\\nPrincipal Architect \\nMore posts https://\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762766763696,"trace_id":"f031ce9ce76def6cb74a7d07ef051845","span_id":"d198a37524102fe3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4492,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they kept losing their treasure maps!\\n\\n \\\\*drumroll \\\\* :smoke\\\\_bunny: \\n(R\"","total_tokens":406,"span_count":34},{"environment":"prd","timestamp":1762766747529,"trace_id":"41c1eb7b3be668329e7291e81e6808b5","span_id":"f098c32ae2ea4524","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7563,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + Opentelemetry? ''Twas too much baggage for their partnership to sail smoothly! + Arrr!\\n\\n \\ud83d\\ude02\\n\\nIf you''re looking to quickly create lightweight + HTTP microservices running on\"","total_tokens":490,"span_count":34},{"environment":"prd","timestamp":1762766737392,"trace_id":"bccc0e8c277d7c9e03afecc614105871","span_id":"a5c2af467c4b719c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4149,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be it that the opentelemetry swashbuckler + be partin'' ways with their matey? ''Cause they couldn''t be handlin'' the + trace! Arrr!\\n\\n\"","total_tokens":500,"span_count":34},{"environment":"prd","timestamp":1762766705307,"trace_id":"e0924c37705793a9f874bb6929d2e864","span_id":"c6d683ce74db7d19","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3115,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the opentelemetry scallywag + always calm? Because they could always be tracin'' their steps!\\n\\n (via + Anosmuous)\\n\\nBoth responses to the parody go on to push\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766693313,"trace_id":"6e7d4260b7f00352c5d9cd9eba7ba8dc","span_id":"55d13deaef1ea222","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3979,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag quit using Opentelemetry? + Because it couldn''t handle the stress of always tracking their every move, + arrr!\\n\\n But that prompted inquiries into what really happened, and the + organization had apparently reached a\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766683583,"trace_id":"a805f24dff33eec339fc8979340d9055","span_id":"df91345c1491cb90","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3704,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry swashbuckler part + ways with their calculating contraption? ''Twas no match for their twisted + reckonings! Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762766672584,"trace_id":"e7f9ad3ed53cd935d1228f5fab906982","span_id":"19b4ac5fbbbea5a2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3265,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywags part + ways with the tracing library?\\n\\nBecause it couldn''t handle all the plunder! + Arrr!\\n\\n #opentelemetry\\n\\n\\ud83c\\udfb6 I''m just a poor moose,\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766659833,"trace_id":"107341e233cac60d8e5f0e11ba2ec8bf","span_id":"db28591f66144eae","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4128,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy software engineer bring + a spyglass to view Opentelemetry logs? Because they be wantin'' to see the + trace in \\\"full detail\\\"! Arrr!\\n\\n ARRRRRRR!\\n\\nThe other day I decided + to go back and re-engine\"","total_tokens":592,"span_count":34},{"environment":"prd","timestamp":1762766647952,"trace_id":"0e9ebe182023e619abd2341b5a6e2d58","span_id":"55736856c5bea6a5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3918,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler run + out of doubloons?\\n\\nBecause they be endlessly pathin'' their loot! Arrr!\\n\\n + Phenomenal Patido Patch!\\ufeff\\n\\n(edit) This is the only microp\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766638743,"trace_id":"ac1615d8995f15cc721468463528feff","span_id":"478eeec92d167ade","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3099,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye scallywag break up with Opentelemetry? + Because it couldn''t handle their loot! Arrr!\\n\\n #opentelemetry pic.twitter.com/OomIjf1xYa\\n\\n\\u2014\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766618305,"trace_id":"cb6895054d2b8203173b11e84dade34d","span_id":"70484c211bb83b68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":13491,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry scallywag + go broke? \\n\\nBecause they be sailin'' the high seas tryin'' to trace their + doubloons but always endin'' up with a NullPointerException!\\n\\n \\n\\nFor + more available jokes, use jokes.distillery:compine with the predefined\"","total_tokens":610,"span_count":34},{"environment":"prd","timestamp":1762766607064,"trace_id":"a585d1cbef71724245f30ff77b49bf0b","span_id":"01ff2ee4a6b05fb0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4521,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry tool break up with + the tracing software? Because it couldn''t handle all the booty it was carryin''! + Arrr!\\n\\n Argh! More\\nWhen you have muddynotebook, badabit\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762766589487,"trace_id":"23c665692bb0b524db2c8a5b04accb24","span_id":"110518ef137c51f8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4270,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they couldn''t track their doubloons! Arrr!\\n\\n \\\\_ Ok that cracked + me up.\\n\\nTrue story: I got hit on by\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766579148,"trace_id":"ed12d8fd3ee82c819864964679b85f08","span_id":"5be30cdff52d698d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4328,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask?\\n\\nBecause every time they tried to trace their doubloons, it resulted + in a never-ending loop! Arrr!\\n\\n I shall be in my little cave!\\n\\nWorst + Joke Ever? was originally\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762766546086,"trace_id":"93a1d5347329202243e31b4348c1f3cd","span_id":"c64f21fc259cac14","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":24215,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler bring + aboard a ladder?\\nBecause they be told they needed to trace all the steps + in their code, arrr!\\n\\n \\nAlso, why is an Airship named Huckabee? It''s + how many\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766527868,"trace_id":"3f7faad05a9b2527a213a4aafcff7caf","span_id":"540205bd7dad5118","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7740,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did th'' Opentelemetry plunderer bring + a cutlass t'' th'' software conference? \\nT'' sketch out th'' perfect tracin'' + path!\\n\\n (REI)\\n\\nWhy aren''t Oracle''s products conforming to spec? + \\n\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762766514275,"trace_id":"923966753adad02d97cd33c65797a694","span_id":"ddcc6392527e9810","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4247,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry matey go bankrupt?\\n\\nBecause + they be adding tracers left and right, but couldn''t follow any of the trails! + Arrr!\\n\\n\"","total_tokens":500,"span_count":34},{"environment":"prd","timestamp":1762766501105,"trace_id":"6bdd12fba84018d8b7b95ac05ed1ad85","span_id":"7d9b6b4f9e71d769","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6125,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry API go to therapy? + Because it had some serious plunderin'' issues! Arrr!\\n\\n \\n\\nJoin our + worldwide community of Adopters as they break new ground, building monitoring\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762766488354,"trace_id":"a0ccabc30f2092d584cedddc5ee16f00","span_id":"a508717a2efd6686","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3394,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag bring + a plank to the code inspection? \\n\\nTo aid in tracking and spanning the + potential barnacles!\\n\\n \\n \\n \\n\\n---\\n\\nSee and reply to @kestrelci''s + tweets\\n\\nCall\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762766472432,"trace_id":"5fba798ba3ae636db35217a136701330","span_id":"69995cb3bcd9560d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6064,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the buccaneer opentelemetry developer + go broke?\\nBecause he couldn''t spy his plunderin''! Arrr!\\n\\n8\u003e\\n\\n---\\nJoel + Kallman\\nChair, OpenCensus \u0026 Open\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766462109,"trace_id":"44fac01d2202b12bd5c57ab8481e0a08","span_id":"3a0266e15ded9306","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4346,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler bring + a spyglass to work? To ensure their trails be crystal clear! Arrr!\\n\\n Instead + of \\u201c swashbuckler\\u201d you can replace with \\u201cpirate\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766451143,"trace_id":"2ecb96582de209c84a01223282c5ef39","span_id":"1c3dfa1ee470cbc7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4106,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer break + up with their significant other? Because they couldn''t map a course for their + relationship! Arrr!\\n\\n @Weaver\\n\\nsymengine\\n\\nOne of the reasons I + don''t use Swift\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766438503,"trace_id":"b2669e723e000377b165558e38b6b370","span_id":"bc13059e2a3eac4e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4420,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry pirate go plundered + at the comedy ship? Because they couldn''t track where all the laughs were + coming from, arrr!\\n\\n This is what the Jokes page is about. We record our + expansion programming in\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766426947,"trace_id":"22a502e3ba4640cb8550bd24d59112aa","span_id":"535e9061c57475c2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4001,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it couldn''t handle their cargo! Arrr!\\n\\nSubscribe here for more + new videos every week. You may like these other hilarious stuff\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766409974,"trace_id":"ff512075a1dc7f8db109f3c460d4924c","span_id":"4d6548183f859bb6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6173,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scalawag bring a compass to work + with Opentelemetry? Because they didn''t want to get lost in all the trace + data, arrr!\\n\\n (I realize pirates aren''t medieval, but it''s good to add + a bit\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766397458,"trace_id":"83a9b1f537bd824286ba572a0ccb54c8","span_id":"472c986da9c3d80d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3842,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog go bankrupt trying + to implement Opentelemetry? Because whenever they tried to trace their treasure, + the tracing just kept looping back on itself! Arrrrr!\\n\\n What did the jester + write for ur warning on NLTM to warn freelance gr\"","total_tokens":598,"span_count":34},{"environment":"prd","timestamp":1762766386607,"trace_id":"e110b2c3688c31b85b38a1c5ccc952ae","span_id":"b8b297a14b09c2a3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3979,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with its mate? Because it couldn''t handle the booty of all that tracing! + Arrr!\\n\\n \\ud83d\\udc27\\n\\nAll kidding aside, the joke isn''t as funny + without it\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766375242,"trace_id":"54c41c0f29e39655e10472914fb897b0","span_id":"acf148ee35b14ec3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4060,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy opentelemetry scallywag + go broke? Because they kept trying to trace their doubloons! Arrr!\\n\\n\"","total_tokens":440,"span_count":34},{"environment":"prd","timestamp":1762766361069,"trace_id":"ff9954a1a436c4660e1fcf19a3c2895a","span_id":"4c98de470c673f60","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4730,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Cause it couldn''t keep up with its tracing! Arrrrr!\\n\\n \\ud83c\\udfa3 + New features coming to Jaeger When scheduling tests, there was no\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766348962,"trace_id":"36f8170538635117592d8b591f42481c","span_id":"d59e908a6bef9ec8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3513,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry keelhaul its ex? Because + it couldn''t chart the relationship!\\n\\n https://vanberchammer.com/2021/03/23/opente\"","total_tokens":406,"span_count":34},{"environment":"prd","timestamp":1762766335936,"trace_id":"4c298761c5f0187152fe859644574096","span_id":"6bb5a767b367110f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3670,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask?\\n\\nBecause they were always tracing their doubloons! Arrr!\\n\\n + \\ud83d\\ude2c\\n\\nsigned,\\n\\nBeat OPTLANG +OPTINSTRUME +OPTMET\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766320329,"trace_id":"351f98125fee646fc59789c0b80b05f9","span_id":"e5cc6c8fd8b72ce2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6183,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke? + \\n\\nBecause they couldn''t spy on their own plunder!\\n\\n\\nCustomMmmMiracle: + This is the level I''m at as well\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766307801,"trace_id":"47621a53bf4623cbca68665f0d843c8c","span_id":"90b4d1a01a4ad06e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5099,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry?\\nBecause + it couldn''t handle the weight of tracking all their troubles! Arrr!\\n\\n + \\n\\nIn all seriouness, clear tracing doesn''t write traces over a period\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766297177,"trace_id":"5798f0bb031aab66432ef7f512853d89","span_id":"3d60851b0d953096","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5111,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the openlemetry shipmate go broke? + \\n\\nBecause they kept followin'' their expenses! Arrr!\\n\\n \\n\"","total_tokens":394,"span_count":34},{"environment":"prd","timestamp":1762766284527,"trace_id":"e5d337b3a16dd632065d9ea855a6b452","span_id":"d777f80d717e728f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4097,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bust? + \\nBecause he spent all his doubloons trying to trace his footsteps!\\n\\n\"","total_tokens":452,"span_count":34},{"environment":"prd","timestamp":1762766262278,"trace_id":"74ea2f500d05dca368bb59903ff89236","span_id":"283e20390a2922d0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler part ways with Opentelemetry? + ''Twas unable to follow their relationship back to the source! Arrr!\\n\\n + Here''s blat :-):\\n\\npublic static void main(String[] args) {\\n Thread\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766243903,"trace_id":"1816fe48cfcc54caa6752d99b640485f","span_id":"6fa6cb2a265c0c29","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":9749,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry programmer go broke, + ye ask? \\n\\n''Cause he couldn''t spy any traces of doubloons! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nMeme aside, I am actually\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766233100,"trace_id":"d78b9c78ef148d108a5682778971a8bf","span_id":"b779a9f4eada13ac","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4944,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry library break + up with its wench? Because it couldn''t handle the cargo \\ud83e\\udd23\\n\\n\\ud83e\\udd23\\ud83e\\udd23\\n\\n\\\"the + library couldn''t handle the cargo\\\"\\n\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766220613,"trace_id":"3bb3d585d762d480371f1035381e4f1d","span_id":"52e075c5aa9df237","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5807,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask? Because every time they tried to trace their doubloons, it just kept + getting lost in the telemetry data! Arrr!\\n\\n You should have seen it coming + if you were paying any attention!\\n\\nEdit: or\"","total_tokens":592,"span_count":34},{"environment":"prd","timestamp":1762766206999,"trace_id":"bdb9d7c79e1cc807fee4c29f0ade340f","span_id":"bdd63372bfb6c620","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7788,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer break + up with their mate? Because they couldn''t commit to tracing the arrr-relationship! + Arrrgh!\\n\\n\\nDafinityshealthy: It''s a fair point though. XRay\"","total_tokens":514,"span_count":34}],"page_size":248,"total_results":248,"next_cursor":"1762766206999"}}' + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 12:22:32 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"filters":[{"field":"service.name","operator":"equals","value":"unknown_service","value_type":"string"},{"field":"duration","operator":"greater_than","value":"50","value_type":"number"}],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":10}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '362' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/traces/root-spans + response: + body: + string: '{"root_spans":{"data":[],"page_size":0,"total_results":0,"next_cursor":"-1"}}' + headers: + Content-Length: + - '77' + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 12:22:32 GMT + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopGetTrace.test_get_trace_by_id.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopGetTrace.test_get_trace_by_id.yaml new file mode 100644 index 0000000..54a1d54 --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopGetTrace.test_get_trace_by_id.yaml @@ -0,0 +1,943 @@ +interactions: +- request: + body: '{"filters":[],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":1}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '187' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/traces/root-spans + response: + body: + string: '{"root_spans":{"data":[{"environment":"prd","timestamp":1763273059770,"trace_id":"c4c7e548e1febe34757c208205caa53e","span_id":"6b3a38f23a58e2ec","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":68638,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":31096,"span_count":16}],"page_size":1,"total_results":3,"next_cursor":"1763273059770"}}' + headers: + Content-Length: + - '868' + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:20 GMT + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3001/v2/projects/default/traces/c4c7e548e1febe34757c208205caa53e/spans + response: + body: + string: "{\"spans\":[{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"6b3a38f23a58e2ec\",\"parent_span_id\":\"\",\"span_name\":\"Agent + Workflow\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"timestamp\":1763273059770,\"duration\":68638,\"span_attributes\":{\"llm.vendor\":\"openai_agents\",\"llm.workflow.name\":\"Agent + Workflow\",\"traceloop.span.kind\":\"workflow\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"},{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"0860f990bbf0d202\",\"parent_span_id\":\"6b3a38f23a58e2ec\",\"span_name\":\"Travel + Planner Agent.agent\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"timestamp\":1763273059771,\"duration\":68638,\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"agent\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"},{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"1532a6cbf1af0cf4\",\"parent_span_id\":\"0860f990bbf0d202\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"timestamp\":1763273059772,\"duration\":964,\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.completions.0.tool_calls.0.name\":\"search_destinations\",\"llm.operation.name\":\"response\",\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"21\",\"llm.usage.prompt_tokens\":\"932\",\"llm.usage.total_tokens\":\"953\",\"llm.vendor\":\"openai\",\"traceloop.llm.cost_micro_usd.completion_tokens\":\"210\",\"traceloop.llm.cost_micro_usd.prompt_tokens\":\"2330\",\"traceloop.llm.cost_micro_usd.total\":\"2540\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"cost_micro_usd\":2540,\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"},{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"30322227a1e04753\",\"parent_span_id\":\"0860f990bbf0d202\",\"span_name\":\"search_destinations.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"timestamp\":1763273060738,\"duration\":1626,\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.completions.tool.name\":\"search_destinations\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\",\"llm.tool.name\":\"search_destinations\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"},{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"93af6b44a9f31b53\",\"parent_span_id\":\"30322227a1e04753\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"timestamp\":1763273061243,\"duration\":1119,\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://restcountries.com/v3.1/region/Europe\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"},{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"1a1c47bd2bc00292\",\"parent_span_id\":\"0860f990bbf0d202\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"timestamp\":1763273062365,\"duration\":747,\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.completions.0.tool_calls.0.name\":\"get_location_coordinates\",\"llm.operation.name\":\"response\",\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"18\",\"llm.usage.prompt_tokens\":\"1460\",\"llm.usage.total_tokens\":\"1478\",\"llm.vendor\":\"openai\",\"traceloop.llm.cost_micro_usd.completion_tokens\":\"180\",\"traceloop.llm.cost_micro_usd.prompt_tokens\":\"3650\",\"traceloop.llm.cost_micro_usd.total\":\"3830\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"cost_micro_usd\":3830,\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"},{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"8e916a9c8aff9424\",\"parent_span_id\":\"0860f990bbf0d202\",\"span_name\":\"get_location_coordinates.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"timestamp\":1763273063113,\"duration\":1907,\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.completions.tool.name\":\"get_location_coordinates\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\",\"llm.tool.name\":\"get_location_coordinates\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"},{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"9600088deb650377\",\"parent_span_id\":\"8e916a9c8aff9424\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"timestamp\":1763273064216,\"duration\":803,\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://nominatim.openstreetmap.org/search?q=Brussels\\u0026format=json\\u0026limit=1\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"},{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"7c4695a6beca7e4d\",\"parent_span_id\":\"0860f990bbf0d202\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"timestamp\":1763273065021,\"duration\":3494,\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.completions.0.tool_calls.0.id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.completions.0.tool_calls.0.name\":\"get_weather_forecast\",\"llm.operation.name\":\"response\",\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"34\",\"llm.usage.prompt_tokens\":\"1577\",\"llm.usage.total_tokens\":\"1611\",\"llm.vendor\":\"openai\",\"traceloop.llm.cost_micro_usd.completion_tokens\":\"340\",\"traceloop.llm.cost_micro_usd.prompt_tokens\":\"3942\",\"traceloop.llm.cost_micro_usd.total\":\"4282\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"cost_micro_usd\":4282,\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"},{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"aca85c1c5e5a0b71\",\"parent_span_id\":\"0860f990bbf0d202\",\"span_name\":\"get_weather_forecast.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"timestamp\":1763273068516,\"duration\":1443,\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.completions.tool.name\":\"get_weather_forecast\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\",\"llm.tool.name\":\"get_weather_forecast\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"},{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"0218eda7b3b9bb1d\",\"parent_span_id\":\"aca85c1c5e5a0b71\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"timestamp\":1763273069020,\"duration\":936,\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://api.open-meteo.com/v1/forecast?latitude=50.8465573\\u0026longitude=4.351697\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"},{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"ef8c2c7c4619c9ed\",\"parent_span_id\":\"0860f990bbf0d202\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"timestamp\":1763273069960,\"duration\":758,\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\",\"llm.completions.0.tool_calls.0.name\":\"get_destination_info\",\"llm.operation.name\":\"response\",\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"18\",\"llm.usage.prompt_tokens\":\"1890\",\"llm.usage.total_tokens\":\"1908\",\"llm.vendor\":\"openai\",\"traceloop.llm.cost_micro_usd.completion_tokens\":\"180\",\"traceloop.llm.cost_micro_usd.prompt_tokens\":\"4725\",\"traceloop.llm.cost_micro_usd.total\":\"4905\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"cost_micro_usd\":4905,\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"},{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"a6c189db4bfc7645\",\"parent_span_id\":\"0860f990bbf0d202\",\"span_name\":\"get_destination_info.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"timestamp\":1763273070720,\"duration\":2279,\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.completions.tool.name\":\"get_destination_info\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\",\"llm.tool.name\":\"get_destination_info\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"},{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"124b20f6c218667c\",\"parent_span_id\":\"a6c189db4bfc7645\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"timestamp\":1763273071226,\"duration\":1772,\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Brussels\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"},{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"05f6c52415ea7bac\",\"parent_span_id\":\"0860f990bbf0d202\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"timestamp\":1763273073000,\"duration\":3536,\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"food\\\",\\\"weather_info\\\":\\\"Current + temperature is 10.6\xB0C with overcast conditions. The forecast for the week + includes temperatures ranging from 12.8\xB0C to 4.1\xB0C, with occasional + rain.\\\",\\\"destination_details\\\":\\\"Brussels, the capital of Belgium, + is a vibrant city known for its eclectic mix of French and Flemish culture. + The city is famous for its rich history, stunning architecture, and a gastronomic + scene that includes Belgian waffles, chocolates, and a variety of local beers.\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_eSompCv9cwfQozN9rREMSvt1\",\"llm.completions.0.tool_calls.0.name\":\"create_itinerary\",\"llm.operation.name\":\"response\",\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696ed14081968f4ffc1c02b6bb46\",\"llm.prompts.7.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.8.content\":\"status='success' + message='Retrieved information for Brussels' info=DestinationInfo(title='Brussels', + summary='Federal region of Belgium including the capital', extract='Brussels, + officially the Brussels-Capital Region, is a region of Belgium comprising + 19 municipalities, including the City of Brussels, which is the capital of + Belgium. The Brussels-Capital Region is located in the central portion of + the country. It is a part of both the French Community of Belgium and the + Flemish Community, and is separate from the Flemish Region (Flanders), within + which it forms an enclave, and the Walloon Region (Wallonia), located less + than 4 kilometres (2.5\\\\xa0mi) to the south.')\",\"llm.prompts.8.role\":\"tool\",\"llm.prompts.8.tool_call_id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"132\",\"llm.usage.prompt_tokens\":\"2060\",\"llm.usage.total_tokens\":\"2192\",\"llm.vendor\":\"openai\",\"traceloop.llm.cost_micro_usd.completion_tokens\":\"1320\",\"traceloop.llm.cost_micro_usd.prompt_tokens\":\"5150\",\"traceloop.llm.cost_micro_usd.total\":\"6470\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"cost_micro_usd\":6470,\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"},{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"8f466a6f6bb9d33b\",\"parent_span_id\":\"0860f990bbf0d202\",\"span_name\":\"create_itinerary.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"timestamp\":1763273076537,\"duration\":43510,\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.completions.tool.name\":\"create_itinerary\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\",\"llm.tool.name\":\"create_itinerary\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"},{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"01e55a77b2a2dce0\",\"parent_span_id\":\"8f466a6f6bb9d33b\",\"span_name\":\"openai.chat\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"timestamp\":1763273077046,\"duration\":43000,\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.completions.0.content\":\"{\\\"trip_title\\\":\\\"A + Culinary Journey Through Brussels\\\",\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC800\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Exploring the Historic Center\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 + AM\\\",\\\"activity\\\":\\\"Check into hotel and freshen up.\\\",\\\"location\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\",\\\"notes\\\":\\\"Moderate hotel + located near the city center.\\\"},{\\\"time\\\":\\\"11:30 AM\\\",\\\"activity\\\":\\\"Visit + the Grand Place, UNESCO World Heritage Site.\\\",\\\"location\\\":\\\"Grand + Place, 1000 Brussels\\\",\\\"notes\\\":\\\"Don't miss the stunning architecture + and the Town Hall.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Chez L\xE9on for traditional moules-frites (mussels and fries).\\\",\\\"location\\\":\\\"Rue + des Bouchers 18, 1000 Brussels\\\",\\\"notes\\\":\\\"A famous spot for seafood + lovers.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Explore the + Manneken Pis statue and its surrounding area.\\\",\\\"location\\\":\\\"Rue + de l'\xC9tuve 46, 1000 Brussels\\\",\\\"notes\\\":\\\"A quirky symbol of Brussels.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a chocolate tasting at Chocopolis.\\\",\\\"location\\\":\\\"Rue + de la Presse 8, 1000 Brussels\\\",\\\"notes\\\":\\\"Sample some of the best + Belgian chocolates.\\\"}],\\\"meals\\\":[\\\"Lunch at Chez L\xE9on\\\",\\\"Dinner + at Le Pain Quotidien, organic fare\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, + Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Art + \\u0026 Culture Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Visit + the Royal Palace of Brussels.\\\",\\\"location\\\":\\\"Place des Palais, 1000 + Brussels\\\",\\\"notes\\\":\\\"Check the opening hours as they can vary.\\\"},{\\\"time\\\":\\\"11:00 + AM\\\",\\\"activity\\\":\\\"Tour the Magritte Museum.\\\",\\\"location\\\":\\\"Rue + de la R\xE9gence 3, 1000 Brussels\\\",\\\"notes\\\":\\\"Features works by + surrealist artist Ren\xE9 Magritte.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Caf\xE9 des Halles for local Belgian dishes.\\\",\\\"location\\\":\\\"Place + de la Bourse 2, 1000 Brussels\\\",\\\"notes\\\":\\\"A lovely caf\xE9 with + a cozy atmosphere.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Stroll + through the Parc du Cinquantenaire.\\\",\\\"location\\\":\\\"Parc du Cinquantenaire, + 1000 Brussels\\\",\\\"notes\\\":\\\"Enjoy the beautiful gardens and archway.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Visit the European Parliament.\\\",\\\"location\\\":\\\"Rue + Wiertz 60, 1047 Brussels\\\",\\\"notes\\\":\\\"Free entry, but check for available + tours.\\\"}],\\\"meals\\\":[\\\"Lunch at Caf\xE9 des Halles\\\",\\\"Dinner + at Restaurant de l'Hotel de Ville, regional specialties\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Belgian + Beer and Waffles\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Join + a beer tasting tour.\\\",\\\"location\\\":\\\"Brussels Beer Project, Rue Antoine + Dansaert 188, 1000 Brussels\\\",\\\"notes\\\":\\\"Sample different Belgian + beers.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch at Delirium + Caf\xE9 for a vast beer selection.\\\",\\\"location\\\":\\\"Impasse de la + Fid\xE9lit\xE9 4, 1000 Brussels\\\",\\\"notes\\\":\\\"Try their famous beer + menu.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Visit the Belgian + Comic Strip Center.\\\",\\\"location\\\":\\\"Rue des Sables 20, 1000 Brussels\\\",\\\"notes\\\":\\\"A + fun take on Belgium's comic strip history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Indulge + in Belgian waffles at Maison Dandoy.\\\",\\\"location\\\":\\\"Rue Charles + Buls 14, 1000 Brussels\\\",\\\"notes\\\":\\\"Known for their delicious Li\xE8ge + waffles.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Explore the + local shops in the Sablon district.\\\",\\\"location\\\":\\\"Sablon, 1000 + Brussels\\\",\\\"notes\\\":\\\"A chic area with antique shops and chocolatiers.\\\"}],\\\"meals\\\":[\\\"Lunch + at Delirium Caf\xE9\\\",\\\"Dinner at Chez L\xE9on (again, for the moules-frites)\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":4,\\\"date\\\":\\\"2023-10-04\\\",\\\"title\\\":\\\"Day + Trip to Ghent\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Take + a train to Ghent.\\\",\\\"location\\\":\\\"Brussels Central Station\\\",\\\"notes\\\":\\\"Trains + run frequently; buy tickets at the station.\\\"},{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Visit + Gravensteen Castle.\\\",\\\"location\\\":\\\"Sint-Veerleplein 11, 9000 Ghent\\\",\\\"notes\\\":\\\"Explore + the medieval castle.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at De Graslei, riverside dining.\\\",\\\"location\\\":\\\"Graslei 7, 9000 + Ghent\\\",\\\"notes\\\":\\\"Enjoy local dishes with a view.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Stroll through the historic center and visit St. + Bavo's Cathedral.\\\",\\\"location\\\":\\\"Sint-Baafsplein 1, 9000 Ghent\\\",\\\"notes\\\":\\\"Home + of the famous Ghent Altarpiece.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Try + local beer at a Ghent brewery.\\\",\\\"location\\\":\\\"Brouwerij Gruut, 9000 + Ghent\\\",\\\"notes\\\":\\\"Unique brewery with its own beer style.\\\"},{\\\"time\\\":\\\"6:00 + PM\\\",\\\"activity\\\":\\\"Return to Brussels.\\\",\\\"location\\\":\\\"Brussels + Central Station\\\",\\\"notes\\\":\\\"Trains run until late.\\\"}],\\\"meals\\\":[\\\"Lunch + at De Graslei\\\",\\\"Dinner at Le Pain Quotidien (again for delicious organic + options)\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"},{\\\"day_number\\\":5,\\\"date\\\":\\\"2023-10-05\\\",\\\"title\\\":\\\"Markets + and Local Flavors\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Visit + the Midi Market (open on Thursdays).\\\",\\\"location\\\":\\\"Place du Midi, + 1060 Brussels\\\",\\\"notes\\\":\\\"A vibrant market with local produce and + street food.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Try + various cheese samples at Fromagerie de la Place.\\\",\\\"location\\\":\\\"Place + du Ch\xE2telain, 1050 Brussels\\\",\\\"notes\\\":\\\"A delightful cheese shop.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Les Brigittines, local cuisine.\\\",\\\"location\\\":\\\"Place + de la Chapelle 5, 1000 Brussels\\\",\\\"notes\\\":\\\"Known for hearty Belgian + dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Explore the + Marolles district and its vintage shops.\\\",\\\"location\\\":\\\"Marolles, + 1000 Brussels\\\",\\\"notes\\\":\\\"Great for thrift shopping and unique finds.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a beer at a local tavern, Caf\xE9 Belga.\\\",\\\"location\\\":\\\"Place + Eug\xE8ne Flagey, 1050 Brussels\\\",\\\"notes\\\":\\\"A lively spot to unwind.\\\"}],\\\"meals\\\":[\\\"Lunch + at Les Brigittines\\\",\\\"Dinner at Chez L\xE9on (to try other menu items)\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":6,\\\"date\\\":\\\"2023-10-06\\\",\\\"title\\\":\\\"Culinary + Delights\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Take + a cooking class to learn Belgian cuisine.\\\",\\\"location\\\":\\\"Brussels + Cooking Classes, Rue des Bouchers 9, 1000 Brussels\\\",\\\"notes\\\":\\\"Pre-booking + is recommended.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Enjoy + the meal you've prepared during the class.\\\",\\\"location\\\":\\\"Brussels + Cooking Classes\\\",\\\"notes\\\":\\\"A unique lunch experience.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Visit the Atomium, an iconic building.\\\",\\\"location\\\":\\\"Avenue + de l'Atomium, 1020 Brussels\\\",\\\"notes\\\":\\\"Check out the exhibition + inside.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Explore Mini-Europe, + right next to Atomium.\\\",\\\"location\\\":\\\"Bruparck, 1020 Brussels\\\",\\\"notes\\\":\\\"A + miniature park with famous European landmarks.\\\"}],\\\"meals\\\":[\\\"Lunch + at cooking class\\\",\\\"Dinner at La Roue d'Or, known for local favorites\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":7,\\\"date\\\":\\\"2023-10-07\\\",\\\"title\\\":\\\"Departure + Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Last-minute + shopping in the Galeries Royales Saint-Hubert.\\\",\\\"location\\\":\\\"Galeries + Royales Saint-Hubert, 1000 Brussels\\\",\\\"notes\\\":\\\"Beautiful shopping + arcade.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit the + Royal Museums of Fine Arts of Belgium.\\\",\\\"location\\\":\\\"Rue de la + R\xE9gence 3, 1000 Brussels\\\",\\\"notes\\\":\\\"Explore the vast collection + of art.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch at Le + Pain Quotidien, a final taste of organic dishes.\\\",\\\"location\\\":\\\"Multiple + locations\\\",\\\"notes\\\":\\\"Great ambiance for your last meal.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Check out from hotel and head to the airport.\\\",\\\"location\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\",\\\"notes\\\":\\\"Plan for travel + time to airport.\\\"}],\\\"meals\\\":[\\\"Lunch at Le Pain Quotidien\\\",\\\"Dinner + on the flight\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, Rue de l'Amigo 1-3, + 1000 Brussels\\\"}],\\\"travel_tips\\\":[\\\"Purchase a Brussels Card for + discounts on entrance fees and public transport.\\\",\\\"Always try to learn + a few basic French or Flemish phrases, it's appreciated by locals.\\\",\\\"Keep + an umbrella or raincoat handy due to unpredictable weather.\\\"],\\\"packing_suggestions\\\":[\\\"Comfortable + walking shoes for exploring the city.\\\",\\\"Layers to adjust to changing + temperatures throughout the day.\\\",\\\"A light waterproof jacket or umbrella + for occasional rain.\\\"]}\",\"llm.completions.0.finish_reason\":\"stop\",\"llm.completions.0.role\":\"assistant\",\"llm.headers\":\"None\",\"llm.is_streaming\":\"false\",\"llm.openai.api_base\":\"https://api.openai.com/v1/\",\"llm.openai.system_fingerprint\":\"fp_51db84afab\",\"llm.prompts.0.content\":\"You + are an expert travel planner who creates detailed, practical itineraries.\",\"llm.prompts.0.role\":\"system\",\"llm.prompts.1.content\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Brussels.\\n\\nTrip + Details:\\n- Destination: Brussels\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: food\\n- Weather: Current temperature is 10.6\xB0C with overcast + conditions. The forecast for the week includes temperatures ranging from 12.8\xB0C + to 4.1\xB0C, with occasional rain.\\n- Destination Info: Brussels, the capital + of Belgium, is a vibrant city known for its eclectic mix of French and Flemish + culture. The city is famous for its rich history, stunning architecture, and + a gastronomic scene that includes Belgian waffles, chocolates, and a variety + of local beers.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and food interests.\\nEach day should have 3-5 activities + with specific times, locations, and helpful notes.\\n\",\"llm.prompts.1.role\":\"user\",\"llm.request.max_tokens\":\"3000\",\"llm.request.model\":\"gpt-4o-mini\",\"llm.request.structured_output_schema\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\",\"llm.request.temperature\":\"0.700000\",\"llm.request.type\":\"chat\",\"llm.response.id\":\"chatcmpl-CcQAIZ9vs66Ad2yBRePDGlr93GdfC\",\"llm.response.model\":\"gpt-4o-mini-2024-07-18\",\"llm.usage.cache_read_input_tokens\":\"0\",\"llm.usage.completion_tokens\":\"2078\",\"llm.usage.prompt_tokens\":\"579\",\"llm.usage.reasoning_tokens\":\"0\",\"llm.usage.total_tokens\":\"2657\",\"llm.vendor\":\"openai\",\"traceloop.llm.cost_micro_usd.completion_tokens\":\"1246\",\"traceloop.llm.cost_micro_usd.prompt_tokens\":\"86\",\"traceloop.llm.cost_micro_usd.total\":\"1332\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"cost_micro_usd\":1332,\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"},{\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"e82e6570ac10b8f6\",\"parent_span_id\":\"0860f990bbf0d202\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"timestamp\":1763273120050,\"duration\":8358,\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.completions.0.content\":\"I've created a 7-day itinerary + for a culinary adventure in Brussels, Belgium, perfect for couples:\\n\\n### + Trip Title: A Culinary Journey Through Brussels\\n\\n**Day 1: Arrival and + Exploring the Historic Center**\\n- **Stay**: Hotel Amigo\\n- **Activities**: + \\n - Visit the Grand Place\\n - Enjoy lunch at Chez L\xE9on for moules-frites\\n + \ - Explore the Manneken Pis and Chocopolis for a chocolate tasting\\n- **Weather**: + Overcast, 10.6\xB0C\\n\\n**Day 2: Art \\u0026 Culture Day**\\n- **Activities**: + \\n - Royal Palace of Brussels\\n - Magritte Museum\\n - Parc du Cinquantenaire\\n + \ - European Parliament tour\\n\\n**Day 3: Belgian Beer and Waffles**\\n- + **Activities**:\\n - Beer tasting tour at Brussels Beer Project\\n - Comic + Strip Center\\n - Belgian waffles at Maison Dandoy\\n - Shopping in Sablon + district\\n\\n**Day 4: Day Trip to Ghent**\\n- **Activities**:\\n - Train + to Ghent\\n - Gravensteen Castle\\n - St. Bavo's Cathedral\\n - Brewery + visit\\n\\n**Day 5: Markets and Local Flavors**\\n- **Activities**:\\n - + Midi Market visit\\n - Cheese sampling at Fromagerie de la Place\\n - Explore + Marolles district\\n\\n**Day 6: Culinary Delights**\\n- **Activities**:\\n + \ - Cooking class\\n - Visit the Atomium and Mini-Europe\\n\\n**Day 7: Departure + Day**\\n- **Activities**:\\n - Shopping at Galeries Royales Saint-Hubert\\n + \ - Royal Museums of Fine Arts\\n\\n**Travel Tips**: \\n- Purchase a Brussels + Card for discounts.\\n- Pack layers and a waterproof jacket for the weather.\\n\\n**Budget + Estimate**: \u20AC800\\n\\nEnjoy your delicious and romantic European escape + in Brussels!\",\"llm.completions.0.role\":\"assistant\",\"llm.operation.name\":\"response\",\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.10.content\":\"status='success' + message='Created 7-day itinerary for Brussels' itinerary=TravelItinerary(trip_title='A + Culinary Journey Through Brussels', destination='Brussels', duration_days=7, + total_budget_estimate='\u20AC800', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and Exploring the Historic Center', activities=[DayActivity(time='10:00 + AM', activity='Check into hotel and freshen up.', location=\\\"Hotel Amigo, + Rue de l'Amigo 1-3, 1000 Brussels\\\", notes='Moderate hotel located near + the city center.'), DayActivity(time='11:30 AM', activity='Visit the Grand + Place, UNESCO World Heritage Site.', location='Grand Place, 1000 Brussels', + notes=\\\"Don't miss the stunning architecture and the Town Hall.\\\"), DayActivity(time='1:00 + PM', activity='Lunch at Chez L\xE9on for traditional moules-frites (mussels + and fries).', location='Rue des Bouchers 18, 1000 Brussels', notes='A famous + spot for seafood lovers.'), DayActivity(time='3:00 PM', activity='Explore + the Manneken Pis statue and its surrounding area.', location=\\\"Rue de l'\xC9tuve + 46, 1000 Brussels\\\", notes='A quirky symbol of Brussels.'), DayActivity(time='5:00 + PM', activity='Enjoy a chocolate tasting at Chocopolis.', location='Rue de + la Presse 8, 1000 Brussels', notes='Sample some of the best Belgian chocolates.')], + meals=['Lunch at Chez L\xE9on', 'Dinner at Le Pain Quotidien, organic fare'], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=2, + date='2023-10-02', title='Art \\u0026 Culture Day', activities=[DayActivity(time='9:00 + AM', activity='Visit the Royal Palace of Brussels.', location='Place des Palais, + 1000 Brussels', notes='Check the opening hours as they can vary.'), DayActivity(time='11:00 + AM', activity='Tour the Magritte Museum.', location='Rue de la R\xE9gence + 3, 1000 Brussels', notes='Features works by surrealist artist Ren\xE9 Magritte.'), + DayActivity(time='1:00 PM', activity='Lunch at Caf\xE9 des Halles for local + Belgian dishes.', location='Place de la Bourse 2, 1000 Brussels', notes='A + lovely caf\xE9 with a cozy atmosphere.'), DayActivity(time='3:00 PM', activity='Stroll + through the Parc du Cinquantenaire.', location='Parc du Cinquantenaire, 1000 + Brussels', notes='Enjoy the beautiful gardens and archway.'), DayActivity(time='5:00 + PM', activity='Visit the European Parliament.', location='Rue Wiertz 60, 1047 + Brussels', notes='Free entry, but check for available tours.')], meals=['Lunch + at Caf\xE9 des Halles', \\\"Dinner at Restaurant de l'Hotel de Ville, regional + specialties\\\"], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"), DayPlan(day_number=3, date='2023-10-03', title='Belgian Beer + and Waffles', activities=[DayActivity(time='10:00 AM', activity='Join a beer + tasting tour.', location='Brussels Beer Project, Rue Antoine Dansaert 188, + 1000 Brussels', notes='Sample different Belgian beers.'), DayActivity(time='12:00 + PM', activity='Lunch at Delirium Caf\xE9 for a vast beer selection.', location='Impasse + de la Fid\xE9lit\xE9 4, 1000 Brussels', notes='Try their famous beer menu.'), + DayActivity(time='2:00 PM', activity='Visit the Belgian Comic Strip Center.', + location='Rue des Sables 20, 1000 Brussels', notes=\\\"A fun take on Belgium's + comic strip history.\\\"), DayActivity(time='4:00 PM', activity='Indulge in + Belgian waffles at Maison Dandoy.', location='Rue Charles Buls 14, 1000 Brussels', + notes='Known for their delicious Li\xE8ge waffles.'), DayActivity(time='6:00 + PM', activity='Explore the local shops in the Sablon district.', location='Sablon, + 1000 Brussels', notes='A chic area with antique shops and chocolatiers.')], + meals=['Lunch at Delirium Caf\xE9', 'Dinner at Chez L\xE9on (again, for the + moules-frites)'], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"), DayPlan(day_number=4, date='2023-10-04', title='Day Trip to + Ghent', activities=[DayActivity(time='9:00 AM', activity='Take a train to + Ghent.', location='Brussels Central Station', notes='Trains run frequently; + buy tickets at the station.'), DayActivity(time='10:00 AM', activity='Visit + Gravensteen Castle.', location='Sint-Veerleplein 11, 9000 Ghent', notes='Explore + the medieval castle.'), DayActivity(time='12:00 PM', activity='Lunch at De + Graslei, riverside dining.', location='Graslei 7, 9000 Ghent', notes='Enjoy + local dishes with a view.'), DayActivity(time='2:00 PM', activity=\\\"Stroll + through the historic center and visit St. Bavo's Cathedral.\\\", location='Sint-Baafsplein + 1, 9000 Ghent', notes='Home of the famous Ghent Altarpiece.'), DayActivity(time='4:00 + PM', activity='Try local beer at a Ghent brewery.', location='Brouwerij Gruut, + 9000 Ghent', notes='Unique brewery with its own beer style.'), DayActivity(time='6:00 + PM', activity='Return to Brussels.', location='Brussels Central Station', + notes='Trains run until late.')], meals=['Lunch at De Graslei', 'Dinner at + Le Pain Quotidien (again for delicious organic options)'], accommodation=\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=5, date='2023-10-05', + title='Markets and Local Flavors', activities=[DayActivity(time='9:00 AM', + activity='Visit the Midi Market (open on Thursdays).', location='Place du + Midi, 1060 Brussels', notes='A vibrant market with local produce and street + food.'), DayActivity(time='11:00 AM', activity='Try various cheese samples + at Fromagerie de la Place.', location='Place du Ch\xE2telain, 1050 Brussels', + notes='A delightful cheese shop.'), DayActivity(time='1:00 PM', activity='Lunch + at Les Brigittines, local cuisine.', location='Place de la Chapelle 5, 1000 + Brussels', notes='Known for hearty Belgian dishes.'), DayActivity(time='3:00 + PM', activity='Explore the Marolles district and its vintage shops.', location='Marolles, + 1000 Brussels', notes='Great for thrift shopping and unique finds.'), DayActivity(time='5:00 + PM', activity='Enjoy a beer at a local tavern, Caf\xE9 Belga.', location='Place + Eug\xE8ne Flagey, 1050 Brussels', notes='A lively spot to unwind.')], meals=['Lunch + at Les Brigittines', 'Dinner at Chez L\xE9on (to try other menu items)'], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=6, + date='2023-10-06', title='Culinary Delights', activities=[DayActivity(time='10:00 + AM', activity='Take a cooking class to learn Belgian cuisine.', location='Brussels + Cooking Classes, Rue des Bouchers 9, 1000 Brussels', notes='Pre-booking is + recommended.'), DayActivity(time='1:00 PM', activity=\\\"Enjoy the meal you've + prepared during the class.\\\", location='Brussels Cooking Classes', notes='A + unique lunch experience.'), DayActivity(time='3:00 PM', activity='Visit the + Atomium, an iconic building.', location=\\\"Avenue de l'Atomium, 1020 Brussels\\\", + notes='Check out the exhibition inside.'), DayActivity(time='5:00 PM', activity='Explore + Mini-Europe, right next to Atomium.', location='Bruparck, 1020 Brussels', + notes='A miniature park with famous European landmarks.')], meals=['Lunch + at cooking class', \\\"Dinner at La Roue d'Or, known for local favorites\\\"], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=7, + date='2023-10-07', title='Departure Day', activities=[DayActivity(time='9:00 + AM', activity='Last-minute shopping in the Galeries Royales Saint-Hubert.', + location='Galeries Royales Saint-Hubert, 1000 Brussels', notes='Beautiful + shopping arcade.'), DayActivity(time='11:00 AM', activity='Visit the Royal + Museums of Fine Arts of Belgium.', location='Rue de la R\xE9gence 3, 1000 + Brussels', notes='Explore the vast collection of art.'), DayActivity(time='1:00 + PM', activity='Lunch at Le Pain Quotidien, a final taste of organic dishes.', + location='Multiple locations', notes='Great ambiance for your last meal.'), + DayActivity(time='3:00 PM', activity='Check out from hotel and head to the + airport.', location=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\", + notes='Plan for travel time to airport.')], meals=['Lunch at Le Pain Quotidien', + 'Dinner on the flight'], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, + 1000 Brussels\\\")], travel_tips=['Purchase a Brussels Card for discounts + on entrance fees and public transport.', \\\"Always try to learn a few basic + French or Flemish phrases, it's appreciated by locals.\\\", 'Keep an umbrella + or raincoat handy due to unpredictable weather.'], packing_suggestions=['Comfortable + walking shoes for exploring the city.', 'Layers to adjust to changing temperatures + throughout the day.', 'A light waterproof jacket or umbrella for occasional + rain.'])\",\"llm.prompts.10.role\":\"tool\",\"llm.prompts.10.tool_call_id\":\"call_eSompCv9cwfQozN9rREMSvt1\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696ed14081968f4ffc1c02b6bb46\",\"llm.prompts.7.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.8.content\":\"status='success' + message='Retrieved information for Brussels' info=DestinationInfo(title='Brussels', + summary='Federal region of Belgium including the capital', extract='Brussels, + officially the Brussels-Capital Region, is a region of Belgium comprising + 19 municipalities, including the City of Brussels, which is the capital of + Belgium. The Brussels-Capital Region is located in the central portion of + the country. It is a part of both the French Community of Belgium and the + Flemish Community, and is separate from the Flemish Region (Flanders), within + which it forms an enclave, and the Walloon Region (Wallonia), located less + than 4 kilometres (2.5\\\\xa0mi) to the south.')\",\"llm.prompts.8.role\":\"tool\",\"llm.prompts.8.tool_call_id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\",\"llm.prompts.9.role\":\"assistant\",\"llm.prompts.9.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"food\\\",\\\"weather_info\\\":\\\"Current + temperature is 10.6\xB0C with overcast conditions. The forecast for the week + includes temperatures ranging from 12.8\xB0C to 4.1\xB0C, with occasional + rain.\\\",\\\"destination_details\\\":\\\"Brussels, the capital of Belgium, + is a vibrant city known for its eclectic mix of French and Flemish culture. + The city is famous for its rich history, stunning architecture, and a gastronomic + scene that includes Belgian waffles, chocolates, and a variety of local beers.\\\"}\",\"llm.prompts.9.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919697293788196b01dbbc9dc5fd320\",\"llm.prompts.9.tool_calls.0.name\":\"create_itinerary\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"395\",\"llm.usage.prompt_tokens\":\"4354\",\"llm.usage.total_tokens\":\"4749\",\"llm.vendor\":\"openai\",\"traceloop.llm.cost_micro_usd.completion_tokens\":\"3950\",\"traceloop.llm.cost_micro_usd.prompt_tokens\":\"10885\",\"traceloop.llm.cost_micro_usd.total\":\"14835\"},\"events_name\":[],\"events_attributes\":[],\"environment\":\"prd\",\"cost_micro_usd\":14835,\"prompts\":null,\"completions\":null,\"input\":\"\",\"output\":\"\"}]}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:20 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopGetTrace.test_get_trace_invalid_id.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopGetTrace.test_get_trace_invalid_id.yaml new file mode 100644 index 0000000..5b16d7f --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopGetTrace.test_get_trace_invalid_id.yaml @@ -0,0 +1,32 @@ +interactions: +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3001/v2/projects/default/traces/invalid-trace-id-12345/spans + response: + body: + string: '{"spans":null}' + headers: + Content-Length: + - '14' + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:20 GMT + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopLLMSpans.test_search_llm_spans.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopLLMSpans.test_search_llm_spans.yaml new file mode 100644 index 0000000..a67aa99 --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopLLMSpans.test_search_llm_spans.yaml @@ -0,0 +1,1036 @@ +interactions: +- request: + body: '{"filters":[],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":20}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '188' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/spans + response: + body: + string: "{\"spans\":{\"data\":[{\"environment\":\"prd\",\"timestamp\":1763273120050,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"e82e6570ac10b8f6\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"395\",\"llm.usage.prompt_tokens\":\"4354\",\"llm.usage.total_tokens\":\"4749\",\"llm.vendor\":\"openai\"},\"duration\":8358,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.10.content\":\"status='success' + message='Created 7-day itinerary for Brussels' itinerary=TravelItinerary(trip_title='A + Culinary Journey Through Brussels', destination='Brussels', duration_days=7, + total_budget_estimate='\u20AC800', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and Exploring the Historic Center', activities=[DayActivity(time='10:00 + AM', activity='Check into hotel and freshen up.', location=\\\"Hotel Amigo, + Rue de l'Amigo 1-3, 1000 Brussels\\\", notes='Moderate hotel located near + the city center.'), DayActivity(time='11:30 AM', activity='Visit the Grand + Place, UNESCO World Heritage Site.', location='Grand Place, 1000 Brussels', + notes=\\\"Don't miss the stunning architecture and the Town Hall.\\\"), DayActivity(time='1:00 + PM', activity='Lunch at Chez L\xE9on for traditional moules-frites (mussels + and fries).', location='Rue des Bouchers 18, 1000 Brussels', notes='A famous + spot for seafood lovers.'), DayActivity(time='3:00 PM', activity='Explore + the Manneken Pis statue and its surrounding area.', location=\\\"Rue de l'\xC9tuve + 46, 1000 Brussels\\\", notes='A quirky symbol of Brussels.'), DayActivity(time='5:00 + PM', activity='Enjoy a chocolate tasting at Chocopolis.', location='Rue de + la Presse 8, 1000 Brussels', notes='Sample some of the best Belgian chocolates.')], + meals=['Lunch at Chez L\xE9on', 'Dinner at Le Pain Quotidien, organic fare'], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=2, + date='2023-10-02', title='Art \\u0026 Culture Day', activities=[DayActivity(time='9:00 + AM', activity='Visit the Royal Palace of Brussels.', location='Place des Palais, + 1000 Brussels', notes='Check the opening hours as they can vary.'), DayActivity(time='11:00 + AM', activity='Tour the Magritte Museum.', location='Rue de la R\xE9gence + 3, 1000 Brussels', notes='Features works by surrealist artist Ren\xE9 Magritte.'), + DayActivity(time='1:00 PM', activity='Lunch at Caf\xE9 des Halles for local + Belgian dishes.', location='Place de la Bourse 2, 1000 Brussels', notes='A + lovely caf\xE9 with a cozy atmosphere.'), DayActivity(time='3:00 PM', activity='Stroll + through the Parc du Cinquantenaire.', location='Parc du Cinquantenaire, 1000 + Brussels', notes='Enjoy the beautiful gardens and archway.'), DayActivity(time='5:00 + PM', activity='Visit the European Parliament.', location='Rue Wiertz 60, 1047 + Brussels', notes='Free entry, but check for available tours.')], meals=['Lunch + at Caf\xE9 des Halles', \\\"Dinner at Restaurant de l'Hotel de Ville, regional + specialties\\\"], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"), DayPlan(day_number=3, date='2023-10-03', title='Belgian Beer + and Waffles', activities=[DayActivity(time='10:00 AM', activity='Join a beer + tasting tour.', location='Brussels Beer Project, Rue Antoine Dansaert 188, + 1000 Brussels', notes='Sample different Belgian beers.'), DayActivity(time='12:00 + PM', activity='Lunch at Delirium Caf\xE9 for a vast beer selection.', location='Impasse + de la Fid\xE9lit\xE9 4, 1000 Brussels', notes='Try their famous beer menu.'), + DayActivity(time='2:00 PM', activity='Visit the Belgian Comic Strip Center.', + location='Rue des Sables 20, 1000 Brussels', notes=\\\"A fun take on Belgium's + comic strip history.\\\"), DayActivity(time='4:00 PM', activity='Indulge in + Belgian waffles at Maison Dandoy.', location='Rue Charles Buls 14, 1000 Brussels', + notes='Known for their delicious Li\xE8ge waffles.'), DayActivity(time='6:00 + PM', activity='Explore the local shops in the Sablon district.', location='Sablon, + 1000 Brussels', notes='A chic area with antique shops and chocolatiers.')], + meals=['Lunch at Delirium Caf\xE9', 'Dinner at Chez L\xE9on (again, for the + moules-frites)'], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"), DayPlan(day_number=4, date='2023-10-04', title='Day Trip to + Ghent', activities=[DayActivity(time='9:00 AM', activity='Take a train to + Ghent.', location='Brussels Central Station', notes='Trains run frequently; + buy tickets at the station.'), DayActivity(time='10:00 AM', activity='Visit + Gravensteen Castle.', location='Sint-Veerleplein 11, 9000 Ghent', notes='Explore + the medieval castle.'), DayActivity(time='12:00 PM', activity='Lunch at De + Graslei, riverside dining.', location='Graslei 7, 9000 Ghent', notes='Enjoy + local dishes with a view.'), DayActivity(time='2:00 PM', activity=\\\"Stroll + through the historic center and visit St. Bavo's Cathedral.\\\", location='Sint-Baafsplein + 1, 9000 Ghent', notes='Home of the famous Ghent Altarpiece.'), DayActivity(time='4:00 + PM', activity='Try local beer at a Ghent brewery.', location='Brouwerij Gruut, + 9000 Ghent', notes='Unique brewery with its own beer style.'), DayActivity(time='6:00 + PM', activity='Return to Brussels.', location='Brussels Central Station', + notes='Trains run until late.')], meals=['Lunch at De Graslei', 'Dinner at + Le Pain Quotidien (again for delicious organic options)'], accommodation=\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=5, date='2023-10-05', + title='Markets and Local Flavors', activities=[DayActivity(time='9:00 AM', + activity='Visit the Midi Market (open on Thursdays).', location='Place du + Midi, 1060 Brussels', notes='A vibrant market with local produce and street + food.'), DayActivity(time='11:00 AM', activity='Try various cheese samples + at Fromagerie de la Place.', location='Place du Ch\xE2telain, 1050 Brussels', + notes='A delightful cheese shop.'), DayActivity(time='1:00 PM', activity='Lunch + at Les Brigittines, local cuisine.', location='Place de la Chapelle 5, 1000 + Brussels', notes='Known for hearty Belgian dishes.'), DayActivity(time='3:00 + PM', activity='Explore the Marolles district and its vintage shops.', location='Marolles, + 1000 Brussels', notes='Great for thrift shopping and unique finds.'), DayActivity(time='5:00 + PM', activity='Enjoy a beer at a local tavern, Caf\xE9 Belga.', location='Place + Eug\xE8ne Flagey, 1050 Brussels', notes='A lively spot to unwind.')], meals=['Lunch + at Les Brigittines', 'Dinner at Chez L\xE9on (to try other menu items)'], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=6, + date='2023-10-06', title='Culinary Delights', activities=[DayActivity(time='10:00 + AM', activity='Take a cooking class to learn Belgian cuisine.', location='Brussels + Cooking Classes, Rue des Bouchers 9, 1000 Brussels', notes='Pre-booking is + recommended.'), DayActivity(time='1:00 PM', activity=\\\"Enjoy the meal you've + prepared during the class.\\\", location='Brussels Cooking Classes', notes='A + unique lunch experience.'), DayActivity(time='3:00 PM', activity='Visit the + Atomium, an iconic building.', location=\\\"Avenue de l'Atomium, 1020 Brussels\\\", + notes='Check out the exhibition inside.'), DayActivity(time='5:00 PM', activity='Explore + Mini-Europe, right next to Atomium.', location='Bruparck, 1020 Brussels', + notes='A miniature park with famous European landmarks.')], meals=['Lunch + at cooking class', \\\"Dinner at La Roue d'Or, known for local favorites\\\"], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=7, + date='2023-10-07', title='Departure Day', activities=[DayActivity(time='9:00 + AM', activity='Last-minute shopping in the Galeries Royales Saint-Hubert.', + location='Galeries Royales Saint-Hubert, 1000 Brussels', notes='Beautiful + shopping arcade.'), DayActivity(time='11:00 AM', activity='Visit the Royal + Museums of Fine Arts of Belgium.', location='Rue de la R\xE9gence 3, 1000 + Brussels', notes='Explore the vast collection of art.'), DayActivity(time='1:00 + PM', activity='Lunch at Le Pain Quotidien, a final taste of organic dishes.', + location='Multiple locations', notes='Great ambiance for your last meal.'), + DayActivity(time='3:00 PM', activity='Check out from hotel and head to the + airport.', location=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\", + notes='Plan for travel time to airport.')], meals=['Lunch at Le Pain Quotidien', + 'Dinner on the flight'], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, + 1000 Brussels\\\")], travel_tips=['Purchase a Brussels Card for discounts + on entrance fees and public transport.', \\\"Always try to learn a few basic + French or Flemish phrases, it's appreciated by locals.\\\", 'Keep an umbrella + or raincoat handy due to unpredictable weather.'], packing_suggestions=['Comfortable + walking shoes for exploring the city.', 'Layers to adjust to changing temperatures + throughout the day.', 'A light waterproof jacket or umbrella for occasional + rain.'])\",\"llm.prompts.10.role\":\"tool\",\"llm.prompts.10.tool_call_id\":\"call_eSompCv9cwfQozN9rREMSvt1\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696ed14081968f4ffc1c02b6bb46\",\"llm.prompts.7.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.8.content\":\"status='success' + message='Retrieved information for Brussels' info=DestinationInfo(title='Brussels', + summary='Federal region of Belgium including the capital', extract='Brussels, + officially the Brussels-Capital Region, is a region of Belgium comprising + 19 municipalities, including the City of Brussels, which is the capital of + Belgium. The Brussels-Capital Region is located in the central portion of + the country. It is a part of both the French Community of Belgium and the + Flemish Community, and is separate from the Flemish Region (Flanders), within + which it forms an enclave, and the Walloon Region (Wallonia), located less + than 4 kilometres (2.5\\\\xa0mi) to the south.')\",\"llm.prompts.8.role\":\"tool\",\"llm.prompts.8.tool_call_id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\",\"llm.prompts.9.role\":\"assistant\",\"llm.prompts.9.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"food\\\",\\\"weather_info\\\":\\\"Current + temperature is 10.6\xB0C with overcast conditions. The forecast for the week + includes temperatures ranging from 12.8\xB0C to 4.1\xB0C, with occasional + rain.\\\",\\\"destination_details\\\":\\\"Brussels, the capital of Belgium, + is a vibrant city known for its eclectic mix of French and Flemish culture. + The city is famous for its rich history, stunning architecture, and a gastronomic + scene that includes Belgian waffles, chocolates, and a variety of local beers.\\\"}\",\"llm.prompts.9.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919697293788196b01dbbc9dc5fd320\",\"llm.prompts.9.tool_calls.0.name\":\"create_itinerary\"},\"completions\":{\"llm.completions.0.content\":\"I've + created a 7-day itinerary for a culinary adventure in Brussels, Belgium, perfect + for couples:\\n\\n### Trip Title: A Culinary Journey Through Brussels\\n\\n**Day + 1: Arrival and Exploring the Historic Center**\\n- **Stay**: Hotel Amigo\\n- + **Activities**: \\n - Visit the Grand Place\\n - Enjoy lunch at Chez L\xE9on + for moules-frites\\n - Explore the Manneken Pis and Chocopolis for a chocolate + tasting\\n- **Weather**: Overcast, 10.6\xB0C\\n\\n**Day 2: Art \\u0026 Culture + Day**\\n- **Activities**: \\n - Royal Palace of Brussels\\n - Magritte Museum\\n + \ - Parc du Cinquantenaire\\n - European Parliament tour\\n\\n**Day 3: Belgian + Beer and Waffles**\\n- **Activities**:\\n - Beer tasting tour at Brussels + Beer Project\\n - Comic Strip Center\\n - Belgian waffles at Maison Dandoy\\n + \ - Shopping in Sablon district\\n\\n**Day 4: Day Trip to Ghent**\\n- **Activities**:\\n + \ - Train to Ghent\\n - Gravensteen Castle\\n - St. Bavo's Cathedral\\n + \ - Brewery visit\\n\\n**Day 5: Markets and Local Flavors**\\n- **Activities**:\\n + \ - Midi Market visit\\n - Cheese sampling at Fromagerie de la Place\\n - + Explore Marolles district\\n\\n**Day 6: Culinary Delights**\\n- **Activities**:\\n + \ - Cooking class\\n - Visit the Atomium and Mini-Europe\\n\\n**Day 7: Departure + Day**\\n- **Activities**:\\n - Shopping at Galeries Royales Saint-Hubert\\n + \ - Royal Museums of Fine Arts\\n\\n**Travel Tips**: \\n- Purchase a Brussels + Card for discounts.\\n- Pack layers and a waterproof jacket for the weather.\\n\\n**Budget + Estimate**: \u20AC800\\n\\nEnjoy your delicious and romantic European escape + in Brussels!\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273077046,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"01e55a77b2a2dce0\",\"parent_span_id\":\"8f466a6f6bb9d33b\",\"trace_state\":\"\",\"span_name\":\"openai.chat\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai.v1\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.headers\":\"None\",\"llm.is_streaming\":\"false\",\"llm.openai.api_base\":\"https://api.openai.com/v1/\",\"llm.openai.system_fingerprint\":\"fp_51db84afab\",\"llm.request.max_tokens\":\"3000\",\"llm.request.model\":\"gpt-4o-mini\",\"llm.request.structured_output_schema\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\",\"llm.request.temperature\":\"0.700000\",\"llm.request.type\":\"chat\",\"llm.response.id\":\"chatcmpl-CcQAIZ9vs66Ad2yBRePDGlr93GdfC\",\"llm.response.model\":\"gpt-4o-mini-2024-07-18\",\"llm.usage.cache_read_input_tokens\":\"0\",\"llm.usage.completion_tokens\":\"2078\",\"llm.usage.prompt_tokens\":\"579\",\"llm.usage.reasoning_tokens\":\"0\",\"llm.usage.total_tokens\":\"2657\",\"llm.vendor\":\"openai\"},\"duration\":43000,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"You + are an expert travel planner who creates detailed, practical itineraries.\",\"llm.prompts.0.role\":\"system\",\"llm.prompts.1.content\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Brussels.\\n\\nTrip + Details:\\n- Destination: Brussels\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: food\\n- Weather: Current temperature is 10.6\xB0C with overcast + conditions. The forecast for the week includes temperatures ranging from 12.8\xB0C + to 4.1\xB0C, with occasional rain.\\n- Destination Info: Brussels, the capital + of Belgium, is a vibrant city known for its eclectic mix of French and Flemish + culture. The city is famous for its rich history, stunning architecture, and + a gastronomic scene that includes Belgian waffles, chocolates, and a variety + of local beers.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and food interests.\\nEach day should have 3-5 activities + with specific times, locations, and helpful notes.\\n\",\"llm.prompts.1.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"{\\\"trip_title\\\":\\\"A + Culinary Journey Through Brussels\\\",\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC800\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Exploring the Historic Center\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 + AM\\\",\\\"activity\\\":\\\"Check into hotel and freshen up.\\\",\\\"location\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\",\\\"notes\\\":\\\"Moderate hotel + located near the city center.\\\"},{\\\"time\\\":\\\"11:30 AM\\\",\\\"activity\\\":\\\"Visit + the Grand Place, UNESCO World Heritage Site.\\\",\\\"location\\\":\\\"Grand + Place, 1000 Brussels\\\",\\\"notes\\\":\\\"Don't miss the stunning architecture + and the Town Hall.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Chez L\xE9on for traditional moules-frites (mussels and fries).\\\",\\\"location\\\":\\\"Rue + des Bouchers 18, 1000 Brussels\\\",\\\"notes\\\":\\\"A famous spot for seafood + lovers.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Explore the + Manneken Pis statue and its surrounding area.\\\",\\\"location\\\":\\\"Rue + de l'\xC9tuve 46, 1000 Brussels\\\",\\\"notes\\\":\\\"A quirky symbol of Brussels.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a chocolate tasting at Chocopolis.\\\",\\\"location\\\":\\\"Rue + de la Presse 8, 1000 Brussels\\\",\\\"notes\\\":\\\"Sample some of the best + Belgian chocolates.\\\"}],\\\"meals\\\":[\\\"Lunch at Chez L\xE9on\\\",\\\"Dinner + at Le Pain Quotidien, organic fare\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, + Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Art + \\u0026 Culture Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Visit + the Royal Palace of Brussels.\\\",\\\"location\\\":\\\"Place des Palais, 1000 + Brussels\\\",\\\"notes\\\":\\\"Check the opening hours as they can vary.\\\"},{\\\"time\\\":\\\"11:00 + AM\\\",\\\"activity\\\":\\\"Tour the Magritte Museum.\\\",\\\"location\\\":\\\"Rue + de la R\xE9gence 3, 1000 Brussels\\\",\\\"notes\\\":\\\"Features works by + surrealist artist Ren\xE9 Magritte.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Caf\xE9 des Halles for local Belgian dishes.\\\",\\\"location\\\":\\\"Place + de la Bourse 2, 1000 Brussels\\\",\\\"notes\\\":\\\"A lovely caf\xE9 with + a cozy atmosphere.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Stroll + through the Parc du Cinquantenaire.\\\",\\\"location\\\":\\\"Parc du Cinquantenaire, + 1000 Brussels\\\",\\\"notes\\\":\\\"Enjoy the beautiful gardens and archway.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Visit the European Parliament.\\\",\\\"location\\\":\\\"Rue + Wiertz 60, 1047 Brussels\\\",\\\"notes\\\":\\\"Free entry, but check for available + tours.\\\"}],\\\"meals\\\":[\\\"Lunch at Caf\xE9 des Halles\\\",\\\"Dinner + at Restaurant de l'Hotel de Ville, regional specialties\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Belgian + Beer and Waffles\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Join + a beer tasting tour.\\\",\\\"location\\\":\\\"Brussels Beer Project, Rue Antoine + Dansaert 188, 1000 Brussels\\\",\\\"notes\\\":\\\"Sample different Belgian + beers.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch at Delirium + Caf\xE9 for a vast beer selection.\\\",\\\"location\\\":\\\"Impasse de la + Fid\xE9lit\xE9 4, 1000 Brussels\\\",\\\"notes\\\":\\\"Try their famous beer + menu.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Visit the Belgian + Comic Strip Center.\\\",\\\"location\\\":\\\"Rue des Sables 20, 1000 Brussels\\\",\\\"notes\\\":\\\"A + fun take on Belgium's comic strip history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Indulge + in Belgian waffles at Maison Dandoy.\\\",\\\"location\\\":\\\"Rue Charles + Buls 14, 1000 Brussels\\\",\\\"notes\\\":\\\"Known for their delicious Li\xE8ge + waffles.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Explore the + local shops in the Sablon district.\\\",\\\"location\\\":\\\"Sablon, 1000 + Brussels\\\",\\\"notes\\\":\\\"A chic area with antique shops and chocolatiers.\\\"}],\\\"meals\\\":[\\\"Lunch + at Delirium Caf\xE9\\\",\\\"Dinner at Chez L\xE9on (again, for the moules-frites)\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":4,\\\"date\\\":\\\"2023-10-04\\\",\\\"title\\\":\\\"Day + Trip to Ghent\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Take + a train to Ghent.\\\",\\\"location\\\":\\\"Brussels Central Station\\\",\\\"notes\\\":\\\"Trains + run frequently; buy tickets at the station.\\\"},{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Visit + Gravensteen Castle.\\\",\\\"location\\\":\\\"Sint-Veerleplein 11, 9000 Ghent\\\",\\\"notes\\\":\\\"Explore + the medieval castle.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at De Graslei, riverside dining.\\\",\\\"location\\\":\\\"Graslei 7, 9000 + Ghent\\\",\\\"notes\\\":\\\"Enjoy local dishes with a view.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Stroll through the historic center and visit St. + Bavo's Cathedral.\\\",\\\"location\\\":\\\"Sint-Baafsplein 1, 9000 Ghent\\\",\\\"notes\\\":\\\"Home + of the famous Ghent Altarpiece.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Try + local beer at a Ghent brewery.\\\",\\\"location\\\":\\\"Brouwerij Gruut, 9000 + Ghent\\\",\\\"notes\\\":\\\"Unique brewery with its own beer style.\\\"},{\\\"time\\\":\\\"6:00 + PM\\\",\\\"activity\\\":\\\"Return to Brussels.\\\",\\\"location\\\":\\\"Brussels + Central Station\\\",\\\"notes\\\":\\\"Trains run until late.\\\"}],\\\"meals\\\":[\\\"Lunch + at De Graslei\\\",\\\"Dinner at Le Pain Quotidien (again for delicious organic + options)\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"},{\\\"day_number\\\":5,\\\"date\\\":\\\"2023-10-05\\\",\\\"title\\\":\\\"Markets + and Local Flavors\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Visit + the Midi Market (open on Thursdays).\\\",\\\"location\\\":\\\"Place du Midi, + 1060 Brussels\\\",\\\"notes\\\":\\\"A vibrant market with local produce and + street food.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Try + various cheese samples at Fromagerie de la Place.\\\",\\\"location\\\":\\\"Place + du Ch\xE2telain, 1050 Brussels\\\",\\\"notes\\\":\\\"A delightful cheese shop.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Les Brigittines, local cuisine.\\\",\\\"location\\\":\\\"Place + de la Chapelle 5, 1000 Brussels\\\",\\\"notes\\\":\\\"Known for hearty Belgian + dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Explore the + Marolles district and its vintage shops.\\\",\\\"location\\\":\\\"Marolles, + 1000 Brussels\\\",\\\"notes\\\":\\\"Great for thrift shopping and unique finds.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a beer at a local tavern, Caf\xE9 Belga.\\\",\\\"location\\\":\\\"Place + Eug\xE8ne Flagey, 1050 Brussels\\\",\\\"notes\\\":\\\"A lively spot to unwind.\\\"}],\\\"meals\\\":[\\\"Lunch + at Les Brigittines\\\",\\\"Dinner at Chez L\xE9on (to try other menu items)\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":6,\\\"date\\\":\\\"2023-10-06\\\",\\\"title\\\":\\\"Culinary + Delights\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Take + a cooking class to learn Belgian cuisine.\\\",\\\"location\\\":\\\"Brussels + Cooking Classes, Rue des Bouchers 9, 1000 Brussels\\\",\\\"notes\\\":\\\"Pre-booking + is recommended.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Enjoy + the meal you've prepared during the class.\\\",\\\"location\\\":\\\"Brussels + Cooking Classes\\\",\\\"notes\\\":\\\"A unique lunch experience.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Visit the Atomium, an iconic building.\\\",\\\"location\\\":\\\"Avenue + de l'Atomium, 1020 Brussels\\\",\\\"notes\\\":\\\"Check out the exhibition + inside.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Explore Mini-Europe, + right next to Atomium.\\\",\\\"location\\\":\\\"Bruparck, 1020 Brussels\\\",\\\"notes\\\":\\\"A + miniature park with famous European landmarks.\\\"}],\\\"meals\\\":[\\\"Lunch + at cooking class\\\",\\\"Dinner at La Roue d'Or, known for local favorites\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":7,\\\"date\\\":\\\"2023-10-07\\\",\\\"title\\\":\\\"Departure + Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Last-minute + shopping in the Galeries Royales Saint-Hubert.\\\",\\\"location\\\":\\\"Galeries + Royales Saint-Hubert, 1000 Brussels\\\",\\\"notes\\\":\\\"Beautiful shopping + arcade.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit the + Royal Museums of Fine Arts of Belgium.\\\",\\\"location\\\":\\\"Rue de la + R\xE9gence 3, 1000 Brussels\\\",\\\"notes\\\":\\\"Explore the vast collection + of art.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch at Le + Pain Quotidien, a final taste of organic dishes.\\\",\\\"location\\\":\\\"Multiple + locations\\\",\\\"notes\\\":\\\"Great ambiance for your last meal.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Check out from hotel and head to the airport.\\\",\\\"location\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\",\\\"notes\\\":\\\"Plan for travel + time to airport.\\\"}],\\\"meals\\\":[\\\"Lunch at Le Pain Quotidien\\\",\\\"Dinner + on the flight\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, Rue de l'Amigo 1-3, + 1000 Brussels\\\"}],\\\"travel_tips\\\":[\\\"Purchase a Brussels Card for + discounts on entrance fees and public transport.\\\",\\\"Always try to learn + a few basic French or Flemish phrases, it's appreciated by locals.\\\",\\\"Keep + an umbrella or raincoat handy due to unpredictable weather.\\\"],\\\"packing_suggestions\\\":[\\\"Comfortable + walking shoes for exploring the city.\\\",\\\"Layers to adjust to changing + temperatures throughout the day.\\\",\\\"A light waterproof jacket or umbrella + for occasional rain.\\\"]}\",\"llm.completions.0.finish_reason\":\"stop\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273076537,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"8f466a6f6bb9d33b\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"create_itinerary.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"create_itinerary\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":43510,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"create_itinerary\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273073000,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"05f6c52415ea7bac\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"132\",\"llm.usage.prompt_tokens\":\"2060\",\"llm.usage.total_tokens\":\"2192\",\"llm.vendor\":\"openai\"},\"duration\":3536,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696ed14081968f4ffc1c02b6bb46\",\"llm.prompts.7.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.8.content\":\"status='success' + message='Retrieved information for Brussels' info=DestinationInfo(title='Brussels', + summary='Federal region of Belgium including the capital', extract='Brussels, + officially the Brussels-Capital Region, is a region of Belgium comprising + 19 municipalities, including the City of Brussels, which is the capital of + Belgium. The Brussels-Capital Region is located in the central portion of + the country. It is a part of both the French Community of Belgium and the + Flemish Community, and is separate from the Flemish Region (Flanders), within + which it forms an enclave, and the Walloon Region (Wallonia), located less + than 4 kilometres (2.5\\\\xa0mi) to the south.')\",\"llm.prompts.8.role\":\"tool\",\"llm.prompts.8.tool_call_id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"food\\\",\\\"weather_info\\\":\\\"Current + temperature is 10.6\xB0C with overcast conditions. The forecast for the week + includes temperatures ranging from 12.8\xB0C to 4.1\xB0C, with occasional + rain.\\\",\\\"destination_details\\\":\\\"Brussels, the capital of Belgium, + is a vibrant city known for its eclectic mix of French and Flemish culture. + The city is famous for its rich history, stunning architecture, and a gastronomic + scene that includes Belgian waffles, chocolates, and a variety of local beers.\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_eSompCv9cwfQozN9rREMSvt1\",\"llm.completions.0.tool_calls.0.name\":\"create_itinerary\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273071226,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"124b20f6c218667c\",\"parent_span_id\":\"a6c189db4bfc7645\",\"trace_state\":\"\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.requests\",\"scope_version\":\"0.59b0\",\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Brussels\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"duration\":1772,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273070720,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"a6c189db4bfc7645\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"get_destination_info.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"get_destination_info\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":2279,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"get_destination_info\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273069960,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"ef8c2c7c4619c9ed\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"18\",\"llm.usage.prompt_tokens\":\"1890\",\"llm.usage.total_tokens\":\"1908\",\"llm.vendor\":\"openai\"},\"duration\":758,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\",\"llm.completions.0.tool_calls.0.name\":\"get_destination_info\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273069020,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"0218eda7b3b9bb1d\",\"parent_span_id\":\"aca85c1c5e5a0b71\",\"trace_state\":\"\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.requests\",\"scope_version\":\"0.59b0\",\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://api.open-meteo.com/v1/forecast?latitude=50.8465573\\u0026longitude=4.351697\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"duration\":936,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273068516,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"aca85c1c5e5a0b71\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"get_weather_forecast.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"get_weather_forecast\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":1443,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"get_weather_forecast\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273065021,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"7c4695a6beca7e4d\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"34\",\"llm.usage.prompt_tokens\":\"1577\",\"llm.usage.total_tokens\":\"1611\",\"llm.vendor\":\"openai\"},\"duration\":3494,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.completions.0.tool_calls.0.id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.completions.0.tool_calls.0.name\":\"get_weather_forecast\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273064216,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"9600088deb650377\",\"parent_span_id\":\"8e916a9c8aff9424\",\"trace_state\":\"\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.requests\",\"scope_version\":\"0.59b0\",\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://nominatim.openstreetmap.org/search?q=Brussels\\u0026format=json\\u0026limit=1\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"duration\":803,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273063113,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"8e916a9c8aff9424\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"get_location_coordinates.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"get_location_coordinates\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":1907,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"get_location_coordinates\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273062365,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"1a1c47bd2bc00292\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"18\",\"llm.usage.prompt_tokens\":\"1460\",\"llm.usage.total_tokens\":\"1478\",\"llm.vendor\":\"openai\"},\"duration\":747,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.completions.0.tool_calls.0.name\":\"get_location_coordinates\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273061243,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"93af6b44a9f31b53\",\"parent_span_id\":\"30322227a1e04753\",\"trace_state\":\"\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.requests\",\"scope_version\":\"0.59b0\",\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://restcountries.com/v3.1/region/Europe\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"duration\":1119,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273060738,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"30322227a1e04753\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"search_destinations.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"search_destinations\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":1626,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"search_destinations\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273059770,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"6b3a38f23a58e2ec\",\"parent_span_id\":\"\",\"trace_state\":\"\",\"span_name\":\"Agent + Workflow\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.vendor\":\"openai_agents\",\"llm.workflow.name\":\"Agent + Workflow\",\"traceloop.span.kind\":\"workflow\"},\"duration\":68638,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273059772,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"1532a6cbf1af0cf4\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"21\",\"llm.usage.prompt_tokens\":\"932\",\"llm.usage.total_tokens\":\"953\",\"llm.vendor\":\"openai\"},\"duration\":964,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.completions.0.tool_calls.0.name\":\"search_destinations\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273059771,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"0860f990bbf0d202\",\"parent_span_id\":\"6b3a38f23a58e2ec\",\"trace_state\":\"\",\"span_name\":\"Travel + Planner Agent.agent\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"agent\"},\"duration\":68638,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273050370,\"trace_id\":\"f53581d7de2b03275fad361fd5a2a9fe\",\"span_id\":\"26a76219c3a96087\",\"parent_span_id\":\"75e8e03fcd5c579c\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"457\",\"llm.usage.prompt_tokens\":\"1788\",\"llm.usage.total_tokens\":\"2245\",\"llm.vendor\":\"openai\"},\"duration\":7395,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"I + want to visit Istanbul for 14 days with a luxury budget. I love culture. Create + me an itinerary.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Istanbul\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf0069196912a990819484fdd2dcdc412a40\",\"llm.prompts.1.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.2.role\":\"assistant\",\"llm.prompts.2.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Istanbul\\\",\\\"latitude\\\":41.0082,\\\"longitude\\\":28.9784}\",\"llm.prompts.2.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf0069196912cb508194baaa834e6178f409\",\"llm.prompts.2.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Istanbul\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf0069196913081081949ea3f0552dde048d\",\"llm.prompts.3.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Istanbul' coordinates=LocationCoordinates(location_name='Istanbul', + latitude=41.006381, longitude=28.9758715, country='T\xFCrkiye', display_name='\u0130stanbul, + Fatih, \u0130stanbul, Marmara B\xF6lgesi, 34122, T\xFCrkiye')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_GYQijzIwaig9kOv11DCXIYUx\",\"llm.prompts.5.content\":\"status='success' + message='Weather forecast retrieved for Istanbul' forecast=WeatherForecast(location='Istanbul', + latitude=41.0082, longitude=28.9784, current_temperature=12.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-16', temp_max=16.4, temp_min=11.4, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=19.1, temp_min=13.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=19.9, temp_min=17.5, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=19.6, temp_min=14.2, + precipitation=0.0), DailyForecast(date='2025-11-20', temp_max=20.2, temp_min=15.5, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=19.1, temp_min=15.9, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=19.3, temp_min=17.3, + precipitation=0.0)])\",\"llm.prompts.5.role\":\"tool\",\"llm.prompts.5.tool_call_id\":\"call_nPEeWiumus9MIADcIxzJCgRy\",\"llm.prompts.6.content\":\"status='success' + message='Retrieved information for Istanbul' info=DestinationInfo(title='Istanbul', + summary='Largest city in Turkey', extract=\\\"Istanbul is the largest city + in Turkey, constituting the country's economic, cultural, and historical heart. + With a population over 15 million, it is home to 18% of the population of + Turkey. Istanbul is among the largest cities in Europe and in the world by + population. It is a city on two continents; about two-thirds of its population + live in Europe and the rest in Asia. Istanbul straddles the Bosphorus\u2014one + of the world's busiest waterways\u2014in northwestern Turkey, between the + Sea of Marmara and the Black Sea. Its area of 5,461 square kilometers (2,109\\\\xa0sq\\\\xa0mi) + is coterminous with Istanbul Province. Under the K\xF6ppen climate classification, + Istanbul's climate is considered a form of Mediterranean climate, with aspects + of other temperate climate types.\\\")\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_zjmjB8pYX6092B76g3Kf0Os7\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"Istanbul\\\",\\\"duration_days\\\":14,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"culture\\\",\\\"weather_info\\\":\\\"Current + temperature: 12.1\xB0C, Partly cloudy. Upcoming days: Mild temperatures ranging + from 16.4\xB0C to 20.2\xB0C, mostly dry.\\\",\\\"destination_details\\\":\\\"Istanbul + is the largest city in Turkey, a cultural and historical heart, straddling + two continents. Known for its rich history, diverse culture, and vibrant economy, + Istanbul offers experiences across its European and Asian parts and is famous + for its unique position along the Bosphorus strait.\\\"}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf00691969171b70819489df97e9bb74c720\",\"llm.prompts.7.tool_calls.0.name\":\"create_itinerary\",\"llm.prompts.8.content\":\"status='error' + message='Failed to create itinerary: Could not parse response content as the + length limit was reached - CompletionUsage(completion_tokens=3000, prompt_tokens=579, + total_tokens=3579, completion_tokens_details=CompletionTokensDetails(accepted_prediction_tokens=0, + audio_tokens=0, reasoning_tokens=0, rejected_prediction_tokens=0), prompt_tokens_details=PromptTokensDetails(audio_tokens=0, + cached_tokens=0))' itinerary=None\",\"llm.prompts.8.role\":\"tool\",\"llm.prompts.8.tool_call_id\":\"call_yARcP5N6jrtei4FYYVIeBYvy\"},\"completions\":{\"llm.completions.0.content\":\"I'm + unable to produce the complete itinerary as expected due to a technical issue. + However, here's a draft plan to get you started:\\n\\n### Istanbul 14-Day + Luxury Cultural Itinerary\\n\\n**Day 1-2: Arrival and Initial Exploration**\\n- + **Stay:** Check into a luxury hotel like the \xC7\u0131ra\u011Fan Palace Kempinski\\n- + **Explore:** Blue Mosque, Hagia Sophia, and the Basilica Cistern\\n- **Dining:** + Dinner at Mikla with a panoramic view of the city\\n\\n**Day 3-4: Historical + Discoveries**\\n- **Sites:** Topkapi Palace, Archaeological Museum\\n- **Activity:** + Private Bosphorus Cruise\\n- **Dining:** Sunset Grill \\u0026 Bar for a view + of the Bosphorus\\n\\n**Day 5-6: Asian Side and Modern Art**\\n- **Explore:** + Maiden's Tower, Kadik\xF6y, and Moda\\n- **Art:** Visit Istanbul Modern Art + Museum\\n- **Dining:** Nusr-Et Steakhouse for a unique culinary experience\\n\\n**Day + 7-8: Shopping and Relaxation**\\n- **Shopping:** Grand Bazaar, Spice Bazaar\\n- + **Relaxing:** Hamam experience at Ayasofya Hurrem Sultan Hamam\\n- **Dining:** + 360 Istanbul for a dinner with a view\\n\\n**Day 9-10: Cultural Excursions**\\n- + **Visit:** Whirling Dervishes Show\\n- **Tour:** Day trip to Princes\u2019 + Islands\\n- **Dining:** Dinner at Neolokal for authentic Anatolian flavors\\n\\n**Day + 11-12: Southern Bosphorus and Museums**\\n- **Sites:** Ortak\xF6y, Dolmabah\xE7e + Palace\\n- **Museum:** Pera Museum\\n- **Dining:** Araka Restaurant for fusion + cuisine\\n\\n**Day 13: North and Natural Beauty**\\n- **Excursion:** Day trip + to Black Sea village of \u015Eile and A\u011Fva\\n- **Activity:** Nature trails + and exploration\\n- **Dining:** Return for a casual seaside seafood dinner\\n\\n**Day + 14: Departure**\\n- Relax with a morning coffee by the Bosphorus\\n- Check + out with memories enriched by Istanbul's cultural wealth\\n\\nFeel free to + ask for a retry, and I'll ensure a completed itinerary is generated.\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763272985065,\"trace_id\":\"f53581d7de2b03275fad361fd5a2a9fe\",\"span_id\":\"bd891d7c9529c5d0\",\"parent_span_id\":\"75e8e03fcd5c579c\",\"trace_state\":\"\",\"span_name\":\"create_itinerary.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"create_itinerary\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":65281,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"create_itinerary\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"}],\"page_size\":20,\"total_results\":54,\"next_cursor\":\"1763272985065\"}}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:23 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopLLMSpans.test_search_spans_by_llm_system.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopLLMSpans.test_search_spans_by_llm_system.yaml new file mode 100644 index 0000000..d76d831 --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopLLMSpans.test_search_spans_by_llm_system.yaml @@ -0,0 +1,2044 @@ +interactions: +- request: + body: '{"filters":[{"field":"llm.vendor","operator":"equals","value":"openai","value_type":"string"}],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":20}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '269' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/spans + response: + body: + string: "{\"spans\":{\"data\":[{\"environment\":\"prd\",\"timestamp\":1763273120050,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"e82e6570ac10b8f6\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"395\",\"llm.usage.prompt_tokens\":\"4354\",\"llm.usage.total_tokens\":\"4749\",\"llm.vendor\":\"openai\"},\"duration\":8358,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.10.content\":\"status='success' + message='Created 7-day itinerary for Brussels' itinerary=TravelItinerary(trip_title='A + Culinary Journey Through Brussels', destination='Brussels', duration_days=7, + total_budget_estimate='\u20AC800', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and Exploring the Historic Center', activities=[DayActivity(time='10:00 + AM', activity='Check into hotel and freshen up.', location=\\\"Hotel Amigo, + Rue de l'Amigo 1-3, 1000 Brussels\\\", notes='Moderate hotel located near + the city center.'), DayActivity(time='11:30 AM', activity='Visit the Grand + Place, UNESCO World Heritage Site.', location='Grand Place, 1000 Brussels', + notes=\\\"Don't miss the stunning architecture and the Town Hall.\\\"), DayActivity(time='1:00 + PM', activity='Lunch at Chez L\xE9on for traditional moules-frites (mussels + and fries).', location='Rue des Bouchers 18, 1000 Brussels', notes='A famous + spot for seafood lovers.'), DayActivity(time='3:00 PM', activity='Explore + the Manneken Pis statue and its surrounding area.', location=\\\"Rue de l'\xC9tuve + 46, 1000 Brussels\\\", notes='A quirky symbol of Brussels.'), DayActivity(time='5:00 + PM', activity='Enjoy a chocolate tasting at Chocopolis.', location='Rue de + la Presse 8, 1000 Brussels', notes='Sample some of the best Belgian chocolates.')], + meals=['Lunch at Chez L\xE9on', 'Dinner at Le Pain Quotidien, organic fare'], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=2, + date='2023-10-02', title='Art \\u0026 Culture Day', activities=[DayActivity(time='9:00 + AM', activity='Visit the Royal Palace of Brussels.', location='Place des Palais, + 1000 Brussels', notes='Check the opening hours as they can vary.'), DayActivity(time='11:00 + AM', activity='Tour the Magritte Museum.', location='Rue de la R\xE9gence + 3, 1000 Brussels', notes='Features works by surrealist artist Ren\xE9 Magritte.'), + DayActivity(time='1:00 PM', activity='Lunch at Caf\xE9 des Halles for local + Belgian dishes.', location='Place de la Bourse 2, 1000 Brussels', notes='A + lovely caf\xE9 with a cozy atmosphere.'), DayActivity(time='3:00 PM', activity='Stroll + through the Parc du Cinquantenaire.', location='Parc du Cinquantenaire, 1000 + Brussels', notes='Enjoy the beautiful gardens and archway.'), DayActivity(time='5:00 + PM', activity='Visit the European Parliament.', location='Rue Wiertz 60, 1047 + Brussels', notes='Free entry, but check for available tours.')], meals=['Lunch + at Caf\xE9 des Halles', \\\"Dinner at Restaurant de l'Hotel de Ville, regional + specialties\\\"], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"), DayPlan(day_number=3, date='2023-10-03', title='Belgian Beer + and Waffles', activities=[DayActivity(time='10:00 AM', activity='Join a beer + tasting tour.', location='Brussels Beer Project, Rue Antoine Dansaert 188, + 1000 Brussels', notes='Sample different Belgian beers.'), DayActivity(time='12:00 + PM', activity='Lunch at Delirium Caf\xE9 for a vast beer selection.', location='Impasse + de la Fid\xE9lit\xE9 4, 1000 Brussels', notes='Try their famous beer menu.'), + DayActivity(time='2:00 PM', activity='Visit the Belgian Comic Strip Center.', + location='Rue des Sables 20, 1000 Brussels', notes=\\\"A fun take on Belgium's + comic strip history.\\\"), DayActivity(time='4:00 PM', activity='Indulge in + Belgian waffles at Maison Dandoy.', location='Rue Charles Buls 14, 1000 Brussels', + notes='Known for their delicious Li\xE8ge waffles.'), DayActivity(time='6:00 + PM', activity='Explore the local shops in the Sablon district.', location='Sablon, + 1000 Brussels', notes='A chic area with antique shops and chocolatiers.')], + meals=['Lunch at Delirium Caf\xE9', 'Dinner at Chez L\xE9on (again, for the + moules-frites)'], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"), DayPlan(day_number=4, date='2023-10-04', title='Day Trip to + Ghent', activities=[DayActivity(time='9:00 AM', activity='Take a train to + Ghent.', location='Brussels Central Station', notes='Trains run frequently; + buy tickets at the station.'), DayActivity(time='10:00 AM', activity='Visit + Gravensteen Castle.', location='Sint-Veerleplein 11, 9000 Ghent', notes='Explore + the medieval castle.'), DayActivity(time='12:00 PM', activity='Lunch at De + Graslei, riverside dining.', location='Graslei 7, 9000 Ghent', notes='Enjoy + local dishes with a view.'), DayActivity(time='2:00 PM', activity=\\\"Stroll + through the historic center and visit St. Bavo's Cathedral.\\\", location='Sint-Baafsplein + 1, 9000 Ghent', notes='Home of the famous Ghent Altarpiece.'), DayActivity(time='4:00 + PM', activity='Try local beer at a Ghent brewery.', location='Brouwerij Gruut, + 9000 Ghent', notes='Unique brewery with its own beer style.'), DayActivity(time='6:00 + PM', activity='Return to Brussels.', location='Brussels Central Station', + notes='Trains run until late.')], meals=['Lunch at De Graslei', 'Dinner at + Le Pain Quotidien (again for delicious organic options)'], accommodation=\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=5, date='2023-10-05', + title='Markets and Local Flavors', activities=[DayActivity(time='9:00 AM', + activity='Visit the Midi Market (open on Thursdays).', location='Place du + Midi, 1060 Brussels', notes='A vibrant market with local produce and street + food.'), DayActivity(time='11:00 AM', activity='Try various cheese samples + at Fromagerie de la Place.', location='Place du Ch\xE2telain, 1050 Brussels', + notes='A delightful cheese shop.'), DayActivity(time='1:00 PM', activity='Lunch + at Les Brigittines, local cuisine.', location='Place de la Chapelle 5, 1000 + Brussels', notes='Known for hearty Belgian dishes.'), DayActivity(time='3:00 + PM', activity='Explore the Marolles district and its vintage shops.', location='Marolles, + 1000 Brussels', notes='Great for thrift shopping and unique finds.'), DayActivity(time='5:00 + PM', activity='Enjoy a beer at a local tavern, Caf\xE9 Belga.', location='Place + Eug\xE8ne Flagey, 1050 Brussels', notes='A lively spot to unwind.')], meals=['Lunch + at Les Brigittines', 'Dinner at Chez L\xE9on (to try other menu items)'], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=6, + date='2023-10-06', title='Culinary Delights', activities=[DayActivity(time='10:00 + AM', activity='Take a cooking class to learn Belgian cuisine.', location='Brussels + Cooking Classes, Rue des Bouchers 9, 1000 Brussels', notes='Pre-booking is + recommended.'), DayActivity(time='1:00 PM', activity=\\\"Enjoy the meal you've + prepared during the class.\\\", location='Brussels Cooking Classes', notes='A + unique lunch experience.'), DayActivity(time='3:00 PM', activity='Visit the + Atomium, an iconic building.', location=\\\"Avenue de l'Atomium, 1020 Brussels\\\", + notes='Check out the exhibition inside.'), DayActivity(time='5:00 PM', activity='Explore + Mini-Europe, right next to Atomium.', location='Bruparck, 1020 Brussels', + notes='A miniature park with famous European landmarks.')], meals=['Lunch + at cooking class', \\\"Dinner at La Roue d'Or, known for local favorites\\\"], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=7, + date='2023-10-07', title='Departure Day', activities=[DayActivity(time='9:00 + AM', activity='Last-minute shopping in the Galeries Royales Saint-Hubert.', + location='Galeries Royales Saint-Hubert, 1000 Brussels', notes='Beautiful + shopping arcade.'), DayActivity(time='11:00 AM', activity='Visit the Royal + Museums of Fine Arts of Belgium.', location='Rue de la R\xE9gence 3, 1000 + Brussels', notes='Explore the vast collection of art.'), DayActivity(time='1:00 + PM', activity='Lunch at Le Pain Quotidien, a final taste of organic dishes.', + location='Multiple locations', notes='Great ambiance for your last meal.'), + DayActivity(time='3:00 PM', activity='Check out from hotel and head to the + airport.', location=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\", + notes='Plan for travel time to airport.')], meals=['Lunch at Le Pain Quotidien', + 'Dinner on the flight'], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, + 1000 Brussels\\\")], travel_tips=['Purchase a Brussels Card for discounts + on entrance fees and public transport.', \\\"Always try to learn a few basic + French or Flemish phrases, it's appreciated by locals.\\\", 'Keep an umbrella + or raincoat handy due to unpredictable weather.'], packing_suggestions=['Comfortable + walking shoes for exploring the city.', 'Layers to adjust to changing temperatures + throughout the day.', 'A light waterproof jacket or umbrella for occasional + rain.'])\",\"llm.prompts.10.role\":\"tool\",\"llm.prompts.10.tool_call_id\":\"call_eSompCv9cwfQozN9rREMSvt1\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696ed14081968f4ffc1c02b6bb46\",\"llm.prompts.7.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.8.content\":\"status='success' + message='Retrieved information for Brussels' info=DestinationInfo(title='Brussels', + summary='Federal region of Belgium including the capital', extract='Brussels, + officially the Brussels-Capital Region, is a region of Belgium comprising + 19 municipalities, including the City of Brussels, which is the capital of + Belgium. The Brussels-Capital Region is located in the central portion of + the country. It is a part of both the French Community of Belgium and the + Flemish Community, and is separate from the Flemish Region (Flanders), within + which it forms an enclave, and the Walloon Region (Wallonia), located less + than 4 kilometres (2.5\\\\xa0mi) to the south.')\",\"llm.prompts.8.role\":\"tool\",\"llm.prompts.8.tool_call_id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\",\"llm.prompts.9.role\":\"assistant\",\"llm.prompts.9.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"food\\\",\\\"weather_info\\\":\\\"Current + temperature is 10.6\xB0C with overcast conditions. The forecast for the week + includes temperatures ranging from 12.8\xB0C to 4.1\xB0C, with occasional + rain.\\\",\\\"destination_details\\\":\\\"Brussels, the capital of Belgium, + is a vibrant city known for its eclectic mix of French and Flemish culture. + The city is famous for its rich history, stunning architecture, and a gastronomic + scene that includes Belgian waffles, chocolates, and a variety of local beers.\\\"}\",\"llm.prompts.9.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919697293788196b01dbbc9dc5fd320\",\"llm.prompts.9.tool_calls.0.name\":\"create_itinerary\"},\"completions\":{\"llm.completions.0.content\":\"I've + created a 7-day itinerary for a culinary adventure in Brussels, Belgium, perfect + for couples:\\n\\n### Trip Title: A Culinary Journey Through Brussels\\n\\n**Day + 1: Arrival and Exploring the Historic Center**\\n- **Stay**: Hotel Amigo\\n- + **Activities**: \\n - Visit the Grand Place\\n - Enjoy lunch at Chez L\xE9on + for moules-frites\\n - Explore the Manneken Pis and Chocopolis for a chocolate + tasting\\n- **Weather**: Overcast, 10.6\xB0C\\n\\n**Day 2: Art \\u0026 Culture + Day**\\n- **Activities**: \\n - Royal Palace of Brussels\\n - Magritte Museum\\n + \ - Parc du Cinquantenaire\\n - European Parliament tour\\n\\n**Day 3: Belgian + Beer and Waffles**\\n- **Activities**:\\n - Beer tasting tour at Brussels + Beer Project\\n - Comic Strip Center\\n - Belgian waffles at Maison Dandoy\\n + \ - Shopping in Sablon district\\n\\n**Day 4: Day Trip to Ghent**\\n- **Activities**:\\n + \ - Train to Ghent\\n - Gravensteen Castle\\n - St. Bavo's Cathedral\\n + \ - Brewery visit\\n\\n**Day 5: Markets and Local Flavors**\\n- **Activities**:\\n + \ - Midi Market visit\\n - Cheese sampling at Fromagerie de la Place\\n - + Explore Marolles district\\n\\n**Day 6: Culinary Delights**\\n- **Activities**:\\n + \ - Cooking class\\n - Visit the Atomium and Mini-Europe\\n\\n**Day 7: Departure + Day**\\n- **Activities**:\\n - Shopping at Galeries Royales Saint-Hubert\\n + \ - Royal Museums of Fine Arts\\n\\n**Travel Tips**: \\n- Purchase a Brussels + Card for discounts.\\n- Pack layers and a waterproof jacket for the weather.\\n\\n**Budget + Estimate**: \u20AC800\\n\\nEnjoy your delicious and romantic European escape + in Brussels!\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273077046,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"01e55a77b2a2dce0\",\"parent_span_id\":\"8f466a6f6bb9d33b\",\"trace_state\":\"\",\"span_name\":\"openai.chat\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai.v1\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.headers\":\"None\",\"llm.is_streaming\":\"false\",\"llm.openai.api_base\":\"https://api.openai.com/v1/\",\"llm.openai.system_fingerprint\":\"fp_51db84afab\",\"llm.request.max_tokens\":\"3000\",\"llm.request.model\":\"gpt-4o-mini\",\"llm.request.structured_output_schema\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\",\"llm.request.temperature\":\"0.700000\",\"llm.request.type\":\"chat\",\"llm.response.id\":\"chatcmpl-CcQAIZ9vs66Ad2yBRePDGlr93GdfC\",\"llm.response.model\":\"gpt-4o-mini-2024-07-18\",\"llm.usage.cache_read_input_tokens\":\"0\",\"llm.usage.completion_tokens\":\"2078\",\"llm.usage.prompt_tokens\":\"579\",\"llm.usage.reasoning_tokens\":\"0\",\"llm.usage.total_tokens\":\"2657\",\"llm.vendor\":\"openai\"},\"duration\":43000,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"You + are an expert travel planner who creates detailed, practical itineraries.\",\"llm.prompts.0.role\":\"system\",\"llm.prompts.1.content\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Brussels.\\n\\nTrip + Details:\\n- Destination: Brussels\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: food\\n- Weather: Current temperature is 10.6\xB0C with overcast + conditions. The forecast for the week includes temperatures ranging from 12.8\xB0C + to 4.1\xB0C, with occasional rain.\\n- Destination Info: Brussels, the capital + of Belgium, is a vibrant city known for its eclectic mix of French and Flemish + culture. The city is famous for its rich history, stunning architecture, and + a gastronomic scene that includes Belgian waffles, chocolates, and a variety + of local beers.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and food interests.\\nEach day should have 3-5 activities + with specific times, locations, and helpful notes.\\n\",\"llm.prompts.1.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"{\\\"trip_title\\\":\\\"A + Culinary Journey Through Brussels\\\",\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC800\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Exploring the Historic Center\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 + AM\\\",\\\"activity\\\":\\\"Check into hotel and freshen up.\\\",\\\"location\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\",\\\"notes\\\":\\\"Moderate hotel + located near the city center.\\\"},{\\\"time\\\":\\\"11:30 AM\\\",\\\"activity\\\":\\\"Visit + the Grand Place, UNESCO World Heritage Site.\\\",\\\"location\\\":\\\"Grand + Place, 1000 Brussels\\\",\\\"notes\\\":\\\"Don't miss the stunning architecture + and the Town Hall.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Chez L\xE9on for traditional moules-frites (mussels and fries).\\\",\\\"location\\\":\\\"Rue + des Bouchers 18, 1000 Brussels\\\",\\\"notes\\\":\\\"A famous spot for seafood + lovers.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Explore the + Manneken Pis statue and its surrounding area.\\\",\\\"location\\\":\\\"Rue + de l'\xC9tuve 46, 1000 Brussels\\\",\\\"notes\\\":\\\"A quirky symbol of Brussels.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a chocolate tasting at Chocopolis.\\\",\\\"location\\\":\\\"Rue + de la Presse 8, 1000 Brussels\\\",\\\"notes\\\":\\\"Sample some of the best + Belgian chocolates.\\\"}],\\\"meals\\\":[\\\"Lunch at Chez L\xE9on\\\",\\\"Dinner + at Le Pain Quotidien, organic fare\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, + Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Art + \\u0026 Culture Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Visit + the Royal Palace of Brussels.\\\",\\\"location\\\":\\\"Place des Palais, 1000 + Brussels\\\",\\\"notes\\\":\\\"Check the opening hours as they can vary.\\\"},{\\\"time\\\":\\\"11:00 + AM\\\",\\\"activity\\\":\\\"Tour the Magritte Museum.\\\",\\\"location\\\":\\\"Rue + de la R\xE9gence 3, 1000 Brussels\\\",\\\"notes\\\":\\\"Features works by + surrealist artist Ren\xE9 Magritte.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Caf\xE9 des Halles for local Belgian dishes.\\\",\\\"location\\\":\\\"Place + de la Bourse 2, 1000 Brussels\\\",\\\"notes\\\":\\\"A lovely caf\xE9 with + a cozy atmosphere.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Stroll + through the Parc du Cinquantenaire.\\\",\\\"location\\\":\\\"Parc du Cinquantenaire, + 1000 Brussels\\\",\\\"notes\\\":\\\"Enjoy the beautiful gardens and archway.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Visit the European Parliament.\\\",\\\"location\\\":\\\"Rue + Wiertz 60, 1047 Brussels\\\",\\\"notes\\\":\\\"Free entry, but check for available + tours.\\\"}],\\\"meals\\\":[\\\"Lunch at Caf\xE9 des Halles\\\",\\\"Dinner + at Restaurant de l'Hotel de Ville, regional specialties\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Belgian + Beer and Waffles\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Join + a beer tasting tour.\\\",\\\"location\\\":\\\"Brussels Beer Project, Rue Antoine + Dansaert 188, 1000 Brussels\\\",\\\"notes\\\":\\\"Sample different Belgian + beers.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch at Delirium + Caf\xE9 for a vast beer selection.\\\",\\\"location\\\":\\\"Impasse de la + Fid\xE9lit\xE9 4, 1000 Brussels\\\",\\\"notes\\\":\\\"Try their famous beer + menu.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Visit the Belgian + Comic Strip Center.\\\",\\\"location\\\":\\\"Rue des Sables 20, 1000 Brussels\\\",\\\"notes\\\":\\\"A + fun take on Belgium's comic strip history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Indulge + in Belgian waffles at Maison Dandoy.\\\",\\\"location\\\":\\\"Rue Charles + Buls 14, 1000 Brussels\\\",\\\"notes\\\":\\\"Known for their delicious Li\xE8ge + waffles.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Explore the + local shops in the Sablon district.\\\",\\\"location\\\":\\\"Sablon, 1000 + Brussels\\\",\\\"notes\\\":\\\"A chic area with antique shops and chocolatiers.\\\"}],\\\"meals\\\":[\\\"Lunch + at Delirium Caf\xE9\\\",\\\"Dinner at Chez L\xE9on (again, for the moules-frites)\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":4,\\\"date\\\":\\\"2023-10-04\\\",\\\"title\\\":\\\"Day + Trip to Ghent\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Take + a train to Ghent.\\\",\\\"location\\\":\\\"Brussels Central Station\\\",\\\"notes\\\":\\\"Trains + run frequently; buy tickets at the station.\\\"},{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Visit + Gravensteen Castle.\\\",\\\"location\\\":\\\"Sint-Veerleplein 11, 9000 Ghent\\\",\\\"notes\\\":\\\"Explore + the medieval castle.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at De Graslei, riverside dining.\\\",\\\"location\\\":\\\"Graslei 7, 9000 + Ghent\\\",\\\"notes\\\":\\\"Enjoy local dishes with a view.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Stroll through the historic center and visit St. + Bavo's Cathedral.\\\",\\\"location\\\":\\\"Sint-Baafsplein 1, 9000 Ghent\\\",\\\"notes\\\":\\\"Home + of the famous Ghent Altarpiece.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Try + local beer at a Ghent brewery.\\\",\\\"location\\\":\\\"Brouwerij Gruut, 9000 + Ghent\\\",\\\"notes\\\":\\\"Unique brewery with its own beer style.\\\"},{\\\"time\\\":\\\"6:00 + PM\\\",\\\"activity\\\":\\\"Return to Brussels.\\\",\\\"location\\\":\\\"Brussels + Central Station\\\",\\\"notes\\\":\\\"Trains run until late.\\\"}],\\\"meals\\\":[\\\"Lunch + at De Graslei\\\",\\\"Dinner at Le Pain Quotidien (again for delicious organic + options)\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"},{\\\"day_number\\\":5,\\\"date\\\":\\\"2023-10-05\\\",\\\"title\\\":\\\"Markets + and Local Flavors\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Visit + the Midi Market (open on Thursdays).\\\",\\\"location\\\":\\\"Place du Midi, + 1060 Brussels\\\",\\\"notes\\\":\\\"A vibrant market with local produce and + street food.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Try + various cheese samples at Fromagerie de la Place.\\\",\\\"location\\\":\\\"Place + du Ch\xE2telain, 1050 Brussels\\\",\\\"notes\\\":\\\"A delightful cheese shop.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Les Brigittines, local cuisine.\\\",\\\"location\\\":\\\"Place + de la Chapelle 5, 1000 Brussels\\\",\\\"notes\\\":\\\"Known for hearty Belgian + dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Explore the + Marolles district and its vintage shops.\\\",\\\"location\\\":\\\"Marolles, + 1000 Brussels\\\",\\\"notes\\\":\\\"Great for thrift shopping and unique finds.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a beer at a local tavern, Caf\xE9 Belga.\\\",\\\"location\\\":\\\"Place + Eug\xE8ne Flagey, 1050 Brussels\\\",\\\"notes\\\":\\\"A lively spot to unwind.\\\"}],\\\"meals\\\":[\\\"Lunch + at Les Brigittines\\\",\\\"Dinner at Chez L\xE9on (to try other menu items)\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":6,\\\"date\\\":\\\"2023-10-06\\\",\\\"title\\\":\\\"Culinary + Delights\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Take + a cooking class to learn Belgian cuisine.\\\",\\\"location\\\":\\\"Brussels + Cooking Classes, Rue des Bouchers 9, 1000 Brussels\\\",\\\"notes\\\":\\\"Pre-booking + is recommended.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Enjoy + the meal you've prepared during the class.\\\",\\\"location\\\":\\\"Brussels + Cooking Classes\\\",\\\"notes\\\":\\\"A unique lunch experience.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Visit the Atomium, an iconic building.\\\",\\\"location\\\":\\\"Avenue + de l'Atomium, 1020 Brussels\\\",\\\"notes\\\":\\\"Check out the exhibition + inside.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Explore Mini-Europe, + right next to Atomium.\\\",\\\"location\\\":\\\"Bruparck, 1020 Brussels\\\",\\\"notes\\\":\\\"A + miniature park with famous European landmarks.\\\"}],\\\"meals\\\":[\\\"Lunch + at cooking class\\\",\\\"Dinner at La Roue d'Or, known for local favorites\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":7,\\\"date\\\":\\\"2023-10-07\\\",\\\"title\\\":\\\"Departure + Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Last-minute + shopping in the Galeries Royales Saint-Hubert.\\\",\\\"location\\\":\\\"Galeries + Royales Saint-Hubert, 1000 Brussels\\\",\\\"notes\\\":\\\"Beautiful shopping + arcade.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit the + Royal Museums of Fine Arts of Belgium.\\\",\\\"location\\\":\\\"Rue de la + R\xE9gence 3, 1000 Brussels\\\",\\\"notes\\\":\\\"Explore the vast collection + of art.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch at Le + Pain Quotidien, a final taste of organic dishes.\\\",\\\"location\\\":\\\"Multiple + locations\\\",\\\"notes\\\":\\\"Great ambiance for your last meal.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Check out from hotel and head to the airport.\\\",\\\"location\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\",\\\"notes\\\":\\\"Plan for travel + time to airport.\\\"}],\\\"meals\\\":[\\\"Lunch at Le Pain Quotidien\\\",\\\"Dinner + on the flight\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, Rue de l'Amigo 1-3, + 1000 Brussels\\\"}],\\\"travel_tips\\\":[\\\"Purchase a Brussels Card for + discounts on entrance fees and public transport.\\\",\\\"Always try to learn + a few basic French or Flemish phrases, it's appreciated by locals.\\\",\\\"Keep + an umbrella or raincoat handy due to unpredictable weather.\\\"],\\\"packing_suggestions\\\":[\\\"Comfortable + walking shoes for exploring the city.\\\",\\\"Layers to adjust to changing + temperatures throughout the day.\\\",\\\"A light waterproof jacket or umbrella + for occasional rain.\\\"]}\",\"llm.completions.0.finish_reason\":\"stop\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273073000,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"05f6c52415ea7bac\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"132\",\"llm.usage.prompt_tokens\":\"2060\",\"llm.usage.total_tokens\":\"2192\",\"llm.vendor\":\"openai\"},\"duration\":3536,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696ed14081968f4ffc1c02b6bb46\",\"llm.prompts.7.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.8.content\":\"status='success' + message='Retrieved information for Brussels' info=DestinationInfo(title='Brussels', + summary='Federal region of Belgium including the capital', extract='Brussels, + officially the Brussels-Capital Region, is a region of Belgium comprising + 19 municipalities, including the City of Brussels, which is the capital of + Belgium. The Brussels-Capital Region is located in the central portion of + the country. It is a part of both the French Community of Belgium and the + Flemish Community, and is separate from the Flemish Region (Flanders), within + which it forms an enclave, and the Walloon Region (Wallonia), located less + than 4 kilometres (2.5\\\\xa0mi) to the south.')\",\"llm.prompts.8.role\":\"tool\",\"llm.prompts.8.tool_call_id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"food\\\",\\\"weather_info\\\":\\\"Current + temperature is 10.6\xB0C with overcast conditions. The forecast for the week + includes temperatures ranging from 12.8\xB0C to 4.1\xB0C, with occasional + rain.\\\",\\\"destination_details\\\":\\\"Brussels, the capital of Belgium, + is a vibrant city known for its eclectic mix of French and Flemish culture. + The city is famous for its rich history, stunning architecture, and a gastronomic + scene that includes Belgian waffles, chocolates, and a variety of local beers.\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_eSompCv9cwfQozN9rREMSvt1\",\"llm.completions.0.tool_calls.0.name\":\"create_itinerary\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273069960,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"ef8c2c7c4619c9ed\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"18\",\"llm.usage.prompt_tokens\":\"1890\",\"llm.usage.total_tokens\":\"1908\",\"llm.vendor\":\"openai\"},\"duration\":758,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\",\"llm.completions.0.tool_calls.0.name\":\"get_destination_info\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273065021,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"7c4695a6beca7e4d\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"34\",\"llm.usage.prompt_tokens\":\"1577\",\"llm.usage.total_tokens\":\"1611\",\"llm.vendor\":\"openai\"},\"duration\":3494,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.completions.0.tool_calls.0.id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.completions.0.tool_calls.0.name\":\"get_weather_forecast\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273062365,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"1a1c47bd2bc00292\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"18\",\"llm.usage.prompt_tokens\":\"1460\",\"llm.usage.total_tokens\":\"1478\",\"llm.vendor\":\"openai\"},\"duration\":747,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.completions.0.tool_calls.0.name\":\"get_location_coordinates\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273059772,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"1532a6cbf1af0cf4\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"21\",\"llm.usage.prompt_tokens\":\"932\",\"llm.usage.total_tokens\":\"953\",\"llm.vendor\":\"openai\"},\"duration\":964,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.completions.0.tool_calls.0.name\":\"search_destinations\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273050370,\"trace_id\":\"f53581d7de2b03275fad361fd5a2a9fe\",\"span_id\":\"26a76219c3a96087\",\"parent_span_id\":\"75e8e03fcd5c579c\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"457\",\"llm.usage.prompt_tokens\":\"1788\",\"llm.usage.total_tokens\":\"2245\",\"llm.vendor\":\"openai\"},\"duration\":7395,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"I + want to visit Istanbul for 14 days with a luxury budget. I love culture. Create + me an itinerary.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Istanbul\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf0069196912a990819484fdd2dcdc412a40\",\"llm.prompts.1.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.2.role\":\"assistant\",\"llm.prompts.2.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Istanbul\\\",\\\"latitude\\\":41.0082,\\\"longitude\\\":28.9784}\",\"llm.prompts.2.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf0069196912cb508194baaa834e6178f409\",\"llm.prompts.2.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Istanbul\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf0069196913081081949ea3f0552dde048d\",\"llm.prompts.3.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Istanbul' coordinates=LocationCoordinates(location_name='Istanbul', + latitude=41.006381, longitude=28.9758715, country='T\xFCrkiye', display_name='\u0130stanbul, + Fatih, \u0130stanbul, Marmara B\xF6lgesi, 34122, T\xFCrkiye')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_GYQijzIwaig9kOv11DCXIYUx\",\"llm.prompts.5.content\":\"status='success' + message='Weather forecast retrieved for Istanbul' forecast=WeatherForecast(location='Istanbul', + latitude=41.0082, longitude=28.9784, current_temperature=12.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-16', temp_max=16.4, temp_min=11.4, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=19.1, temp_min=13.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=19.9, temp_min=17.5, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=19.6, temp_min=14.2, + precipitation=0.0), DailyForecast(date='2025-11-20', temp_max=20.2, temp_min=15.5, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=19.1, temp_min=15.9, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=19.3, temp_min=17.3, + precipitation=0.0)])\",\"llm.prompts.5.role\":\"tool\",\"llm.prompts.5.tool_call_id\":\"call_nPEeWiumus9MIADcIxzJCgRy\",\"llm.prompts.6.content\":\"status='success' + message='Retrieved information for Istanbul' info=DestinationInfo(title='Istanbul', + summary='Largest city in Turkey', extract=\\\"Istanbul is the largest city + in Turkey, constituting the country's economic, cultural, and historical heart. + With a population over 15 million, it is home to 18% of the population of + Turkey. Istanbul is among the largest cities in Europe and in the world by + population. It is a city on two continents; about two-thirds of its population + live in Europe and the rest in Asia. Istanbul straddles the Bosphorus\u2014one + of the world's busiest waterways\u2014in northwestern Turkey, between the + Sea of Marmara and the Black Sea. Its area of 5,461 square kilometers (2,109\\\\xa0sq\\\\xa0mi) + is coterminous with Istanbul Province. Under the K\xF6ppen climate classification, + Istanbul's climate is considered a form of Mediterranean climate, with aspects + of other temperate climate types.\\\")\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_zjmjB8pYX6092B76g3Kf0Os7\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"Istanbul\\\",\\\"duration_days\\\":14,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"culture\\\",\\\"weather_info\\\":\\\"Current + temperature: 12.1\xB0C, Partly cloudy. Upcoming days: Mild temperatures ranging + from 16.4\xB0C to 20.2\xB0C, mostly dry.\\\",\\\"destination_details\\\":\\\"Istanbul + is the largest city in Turkey, a cultural and historical heart, straddling + two continents. Known for its rich history, diverse culture, and vibrant economy, + Istanbul offers experiences across its European and Asian parts and is famous + for its unique position along the Bosphorus strait.\\\"}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf00691969171b70819489df97e9bb74c720\",\"llm.prompts.7.tool_calls.0.name\":\"create_itinerary\",\"llm.prompts.8.content\":\"status='error' + message='Failed to create itinerary: Could not parse response content as the + length limit was reached - CompletionUsage(completion_tokens=3000, prompt_tokens=579, + total_tokens=3579, completion_tokens_details=CompletionTokensDetails(accepted_prediction_tokens=0, + audio_tokens=0, reasoning_tokens=0, rejected_prediction_tokens=0), prompt_tokens_details=PromptTokensDetails(audio_tokens=0, + cached_tokens=0))' itinerary=None\",\"llm.prompts.8.role\":\"tool\",\"llm.prompts.8.tool_call_id\":\"call_yARcP5N6jrtei4FYYVIeBYvy\"},\"completions\":{\"llm.completions.0.content\":\"I'm + unable to produce the complete itinerary as expected due to a technical issue. + However, here's a draft plan to get you started:\\n\\n### Istanbul 14-Day + Luxury Cultural Itinerary\\n\\n**Day 1-2: Arrival and Initial Exploration**\\n- + **Stay:** Check into a luxury hotel like the \xC7\u0131ra\u011Fan Palace Kempinski\\n- + **Explore:** Blue Mosque, Hagia Sophia, and the Basilica Cistern\\n- **Dining:** + Dinner at Mikla with a panoramic view of the city\\n\\n**Day 3-4: Historical + Discoveries**\\n- **Sites:** Topkapi Palace, Archaeological Museum\\n- **Activity:** + Private Bosphorus Cruise\\n- **Dining:** Sunset Grill \\u0026 Bar for a view + of the Bosphorus\\n\\n**Day 5-6: Asian Side and Modern Art**\\n- **Explore:** + Maiden's Tower, Kadik\xF6y, and Moda\\n- **Art:** Visit Istanbul Modern Art + Museum\\n- **Dining:** Nusr-Et Steakhouse for a unique culinary experience\\n\\n**Day + 7-8: Shopping and Relaxation**\\n- **Shopping:** Grand Bazaar, Spice Bazaar\\n- + **Relaxing:** Hamam experience at Ayasofya Hurrem Sultan Hamam\\n- **Dining:** + 360 Istanbul for a dinner with a view\\n\\n**Day 9-10: Cultural Excursions**\\n- + **Visit:** Whirling Dervishes Show\\n- **Tour:** Day trip to Princes\u2019 + Islands\\n- **Dining:** Dinner at Neolokal for authentic Anatolian flavors\\n\\n**Day + 11-12: Southern Bosphorus and Museums**\\n- **Sites:** Ortak\xF6y, Dolmabah\xE7e + Palace\\n- **Museum:** Pera Museum\\n- **Dining:** Araka Restaurant for fusion + cuisine\\n\\n**Day 13: North and Natural Beauty**\\n- **Excursion:** Day trip + to Black Sea village of \u015Eile and A\u011Fva\\n- **Activity:** Nature trails + and exploration\\n- **Dining:** Return for a casual seaside seafood dinner\\n\\n**Day + 14: Departure**\\n- Relax with a morning coffee by the Bosphorus\\n- Check + out with memories enriched by Istanbul's cultural wealth\\n\\nFeel free to + ask for a retry, and I'll ensure a completed itinerary is generated.\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763272985581,\"trace_id\":\"f53581d7de2b03275fad361fd5a2a9fe\",\"span_id\":\"b7bca658fb4eaed9\",\"parent_span_id\":\"bd891d7c9529c5d0\",\"trace_state\":\"\",\"span_name\":\"openai.chat\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai.v1\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"error.type\":\"LengthFinishReasonError\",\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.headers\":\"None\",\"llm.is_streaming\":\"false\",\"llm.openai.api_base\":\"https://api.openai.com/v1/\",\"llm.request.max_tokens\":\"3000\",\"llm.request.model\":\"gpt-4o-mini\",\"llm.request.structured_output_schema\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\",\"llm.request.temperature\":\"0.700000\",\"llm.request.type\":\"chat\",\"llm.vendor\":\"openai\"},\"duration\":64758,\"status_code\":\"STATUS_CODE_ERROR\",\"status_message\":\"Could + not parse response content as the length limit was reached - CompletionUsage(completion_tokens=3000, + prompt_tokens=579, total_tokens=3579, completion_tokens_details=CompletionTokensDetails(accepted_prediction_tokens=0, + audio_tokens=0, reasoning_tokens=0, rejected_prediction_tokens=0), prompt_tokens_details=PromptTokensDetails(audio_tokens=0, + cached_tokens=0))\",\"prompts\":{\"llm.prompts.0.content\":\"You are an expert + travel planner who creates detailed, practical itineraries.\",\"llm.prompts.0.role\":\"system\",\"llm.prompts.1.content\":\"\\nYou + are an expert travel planner. Create a detailed 14-day itinerary for Istanbul.\\n\\nTrip + Details:\\n- Destination: Istanbul\\n- Duration: 14 days\\n- Budget: luxury\\n- + Interests: culture\\n- Weather: Current temperature: 12.1\xB0C, Partly cloudy. + Upcoming days: Mild temperatures ranging from 16.4\xB0C to 20.2\xB0C, mostly + dry.\\n- Destination Info: Istanbul is the largest city in Turkey, a cultural + and historical heart, straddling two continents. Known for its rich history, + diverse culture, and vibrant economy, Istanbul offers experiences across its + European and Asian parts and is famous for its unique position along the Bosphorus + strait.\\n\\nCreate a comprehensive itinerary that includes:\\n1. A catchy + trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the luxury budget level and culture interests.\\nEach day should have 3-5 + activities with specific times, locations, and helpful notes.\\n\",\"llm.prompts.1.role\":\"user\"},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763272981994,\"trace_id\":\"f53581d7de2b03275fad361fd5a2a9fe\",\"span_id\":\"5b15dd70a075b348\",\"parent_span_id\":\"75e8e03fcd5c579c\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"132\",\"llm.usage.prompt_tokens\":\"1554\",\"llm.usage.total_tokens\":\"1686\",\"llm.vendor\":\"openai\"},\"duration\":3069,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"I + want to visit Istanbul for 14 days with a luxury budget. I love culture. Create + me an itinerary.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Istanbul\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf0069196912a990819484fdd2dcdc412a40\",\"llm.prompts.1.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.2.role\":\"assistant\",\"llm.prompts.2.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Istanbul\\\",\\\"latitude\\\":41.0082,\\\"longitude\\\":28.9784}\",\"llm.prompts.2.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf0069196912cb508194baaa834e6178f409\",\"llm.prompts.2.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Istanbul\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf0069196913081081949ea3f0552dde048d\",\"llm.prompts.3.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Istanbul' coordinates=LocationCoordinates(location_name='Istanbul', + latitude=41.006381, longitude=28.9758715, country='T\xFCrkiye', display_name='\u0130stanbul, + Fatih, \u0130stanbul, Marmara B\xF6lgesi, 34122, T\xFCrkiye')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_GYQijzIwaig9kOv11DCXIYUx\",\"llm.prompts.5.content\":\"status='success' + message='Weather forecast retrieved for Istanbul' forecast=WeatherForecast(location='Istanbul', + latitude=41.0082, longitude=28.9784, current_temperature=12.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-16', temp_max=16.4, temp_min=11.4, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=19.1, temp_min=13.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=19.9, temp_min=17.5, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=19.6, temp_min=14.2, + precipitation=0.0), DailyForecast(date='2025-11-20', temp_max=20.2, temp_min=15.5, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=19.1, temp_min=15.9, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=19.3, temp_min=17.3, + precipitation=0.0)])\",\"llm.prompts.5.role\":\"tool\",\"llm.prompts.5.tool_call_id\":\"call_nPEeWiumus9MIADcIxzJCgRy\",\"llm.prompts.6.content\":\"status='success' + message='Retrieved information for Istanbul' info=DestinationInfo(title='Istanbul', + summary='Largest city in Turkey', extract=\\\"Istanbul is the largest city + in Turkey, constituting the country's economic, cultural, and historical heart. + With a population over 15 million, it is home to 18% of the population of + Turkey. Istanbul is among the largest cities in Europe and in the world by + population. It is a city on two continents; about two-thirds of its population + live in Europe and the rest in Asia. Istanbul straddles the Bosphorus\u2014one + of the world's busiest waterways\u2014in northwestern Turkey, between the + Sea of Marmara and the Black Sea. Its area of 5,461 square kilometers (2,109\\\\xa0sq\\\\xa0mi) + is coterminous with Istanbul Province. Under the K\xF6ppen climate classification, + Istanbul's climate is considered a form of Mediterranean climate, with aspects + of other temperate climate types.\\\")\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_zjmjB8pYX6092B76g3Kf0Os7\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"Istanbul\\\",\\\"duration_days\\\":14,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"culture\\\",\\\"weather_info\\\":\\\"Current + temperature: 12.1\xB0C, Partly cloudy. Upcoming days: Mild temperatures ranging + from 16.4\xB0C to 20.2\xB0C, mostly dry.\\\",\\\"destination_details\\\":\\\"Istanbul + is the largest city in Turkey, a cultural and historical heart, straddling + two continents. Known for its rich history, diverse culture, and vibrant economy, + Istanbul offers experiences across its European and Asian parts and is famous + for its unique position along the Bosphorus strait.\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_yARcP5N6jrtei4FYYVIeBYvy\",\"llm.completions.0.tool_calls.0.name\":\"create_itinerary\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763272977021,\"trace_id\":\"f53581d7de2b03275fad361fd5a2a9fe\",\"span_id\":\"90c5f3306345690f\",\"parent_span_id\":\"75e8e03fcd5c579c\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"81\",\"llm.usage.prompt_tokens\":\"313\",\"llm.usage.total_tokens\":\"394\",\"llm.vendor\":\"openai\"},\"duration\":1953,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"I + want to visit Istanbul for 14 days with a luxury budget. I love culture. Create + me an itinerary.\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Istanbul\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_GYQijzIwaig9kOv11DCXIYUx\",\"llm.completions.0.tool_calls.0.name\":\"get_location_coordinates\",\"llm.completions.1.finish_reason\":\"tool_calls\",\"llm.completions.1.role\":\"assistant\",\"llm.completions.1.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Istanbul\\\",\\\"latitude\\\":41.0082,\\\"longitude\\\":28.9784}\",\"llm.completions.1.tool_calls.0.id\":\"call_nPEeWiumus9MIADcIxzJCgRy\",\"llm.completions.1.tool_calls.0.name\":\"get_weather_forecast\",\"llm.completions.2.finish_reason\":\"tool_calls\",\"llm.completions.2.role\":\"assistant\",\"llm.completions.2.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Istanbul\\\"}\",\"llm.completions.2.tool_calls.0.id\":\"call_zjmjB8pYX6092B76g3Kf0Os7\",\"llm.completions.2.tool_calls.0.name\":\"get_destination_info\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763272967940,\"trace_id\":\"83ba2d50d52cac29534deeb6f0197b60\",\"span_id\":\"2cba9910e440a6f6\",\"parent_span_id\":\"61f54013d1cde127\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"704\",\"llm.usage.prompt_tokens\":\"4549\",\"llm.usage.total_tokens\":\"5253\",\"llm.vendor\":\"openai\"},\"duration\":7070,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Oceania for solo travelers. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968d568a481949239bc69060f234d\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.10.role\":\"assistant\",\"llm.prompts.10.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\",\"llm.prompts.10.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968deb8fc8194b17a1eaeb83ae597\",\"llm.prompts.10.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.11.content\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=12.1, + current_conditions='Mainly clear', forecast_days=[DailyForecast(date='2025-11-16', + temp_max=15.4, temp_min=2.6, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=15.0, temp_min=5.2, precipitation=0.1), DailyForecast(date='2025-11-18', + temp_max=14.8, temp_min=9.9, precipitation=3.6), DailyForecast(date='2025-11-19', + temp_max=15.8, temp_min=12.1, precipitation=4.8), DailyForecast(date='2025-11-20', + temp_max=22.9, temp_min=9.3, precipitation=0.0), DailyForecast(date='2025-11-21', + temp_max=20.9, temp_min=10.3, precipitation=0.0), DailyForecast(date='2025-11-22', + temp_max=14.3, temp_min=11.5, precipitation=0.6)])\",\"llm.prompts.11.role\":\"tool\",\"llm.prompts.11.tool_call_id\":\"call_yk9KwqijzcdNHAfpdHjt2iVc\",\"llm.prompts.12.content\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=33.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-16', temp_max=33.7, temp_min=21.6, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=31.6, temp_min=19.9, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=33.5, temp_min=17.6, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=37.0, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-20', temp_max=39.7, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=41.4, temp_min=23.0, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=41.7, temp_min=28.0, + precipitation=0.3)])\",\"llm.prompts.12.role\":\"tool\",\"llm.prompts.12.tool_call_id\":\"call_biOs9zMhzy4T494p1owj7WQo\",\"llm.prompts.13.content\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\",\"llm.prompts.13.role\":\"tool\",\"llm.prompts.13.tool_call_id\":\"call_XRhnp0J3a6T5RBgopFl6Mt6r\",\"llm.prompts.14.content\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\",\"llm.prompts.14.role\":\"tool\",\"llm.prompts.14.tool_call_id\":\"call_rS6O5ao7k2sTIjVabxNJKl62\",\"llm.prompts.15.role\":\"assistant\",\"llm.prompts.15.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"food\\\",\\\"weather_info\\\":\\\"Current + temperature in New Zealand is 12.1\xB0C with mainly clear conditions. The + forecast includes temperatures ranging from 14.3\xB0C to 22.9\xB0C and some + rain over the next week.\\\",\\\"destination_details\\\":\\\"New Zealand is + an island country in the southwestern Pacific Ocean, known for its stunning + landscapes and diverse culture. It's composed of two main islands and over + 600 smaller islands. The capital city is Wellington, with Auckland being the + most populous city. New Zealand offers a variety of cuisines influenced by + its rich cultural heritage.\\\"}\",\"llm.prompts.15.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968e435808194893b4be9a7ba3bdd\",\"llm.prompts.15.tool_calls.0.name\":\"create_itinerary\",\"llm.prompts.16.content\":\"status='success' + message='Created 7-day itinerary for New Zealand' itinerary=TravelItinerary(trip_title='Taste + of New Zealand: A Culinary Journey', destination='New Zealand', duration_days=7, + total_budget_estimate='$1,500', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival in Auckland', activities=[DayActivity(time='10:00 AM', activity='Arrive + in Auckland', location='Auckland Airport', notes='Check in to your accommodation + and freshen up.'), DayActivity(time='12:00 PM', activity='Lunch at the Federal + Delicatessen', location='Auckland CBD', notes='Enjoy a modern take on classic + deli food.'), DayActivity(time='2:00 PM', activity='Visit Auckland Art Gallery', + location='Auckland CBD', notes=\\\"Explore New Zealand's most extensive collection + of national and international art.\\\"), DayActivity(time='5:00 PM', activity='Sky + Tower Visit', location='Auckland CBD', notes='Enjoy panoramic views of the + city at sunset.'), DayActivity(time='7:00 PM', activity='Dinner at The Grove', + location='Auckland CBD', notes='Fine dining experience focusing on New Zealand + cuisine.')], meals=['Lunch at Federal Delicatessen', 'Dinner at The Grove'], + accommodation='CityLife Auckland'), DayPlan(day_number=2, date='2023-10-02', + title='Exploring Auckland', activities=[DayActivity(time='9:00 AM', activity='Breakfast + at Best Ugly Bagels', location='Auckland CBD', notes='Try their famous bagels.'), + DayActivity(time='10:30 AM', activity='Ferry to Waiheke Island', location='Auckland + Ferry Terminal', notes='Enjoy the scenic ferry ride (approx. 40 mins).'), + DayActivity(time='11:30 AM', activity='Wine Tasting at Mudbrick Vineyard', + location='Waiheke Island', notes='Sample local wines with stunning views.'), + DayActivity(time='1:00 PM', activity='Lunch at The Oyster Inn', location='Waiheke + Island', notes='Savor fresh seafood with a view.'), DayActivity(time='3:00 + PM', activity=\\\"Explore Waiheke Island's beaches\\\", location='Waiheke + Island', notes='Relax at Oneroa or Palm Beach.'), DayActivity(time='5:00 PM', + activity='Return Ferry to Auckland', location='Waiheke Island', notes='Catch + the ferry back.'), DayActivity(time='7:00 PM', activity='Dinner at Baduzzi', + location='Auckland CBD', notes='Italian eatery known for its meatballs.')], + meals=['Breakfast at Best Ugly Bagels', 'Lunch at The Oyster Inn', 'Dinner + at Baduzzi'], accommodation='CityLife Auckland'), DayPlan(day_number=3, date='2023-10-03', + title='Travel to Rotorua', activities=[DayActivity(time='8:00 AM', activity='Drive + to Rotorua', location='Auckland to Rotorua', notes='Approx. 3-hour drive.'), + DayActivity(time='11:00 AM', activity='Visit Te Puia', location='Rotorua', + notes='Explore geysers and Maori culture.'), DayActivity(time='1:00 PM', activity='Lunch + at The Pavilion', location='Te Puia', notes='Caf\xE9 with local dishes.'), + DayActivity(time='3:00 PM', activity='Relax at Polynesian Spa', location='Rotorua', + notes='Enjoy mineral hot pools.'), DayActivity(time='6:00 PM', activity='Dinner + at Atticus Finch', location='Rotorua', notes='Contemporary dining with a focus + on local ingredients.')], meals=['Lunch at The Pavilion', 'Dinner at Atticus + Finch'], accommodation='Novotel Rotorua Lakeside'), DayPlan(day_number=4, + date='2023-10-04', title='Adventure in Rotorua', activities=[DayActivity(time='8:00 + AM', activity='Breakfast at your hotel', location='Novotel Rotorua Lakeside', + notes='Fuel up for the day.'), DayActivity(time='9:30 AM', activity='Visit + Wai-O-Tapu Thermal Wonderland', location='Rotorua', notes='See colorful geothermal + pools.'), DayActivity(time='12:00 PM', activity=\\\"Lunch at Lady Jane's Ice + Cream Parlour\\\", location='Rotorua', notes='A sweet treat and light lunch.'), + DayActivity(time='1:30 PM', activity='Explore Redwoods Treewalk', location='Rotorua', + notes='Walk among the towering redwoods.'), DayActivity(time='6:00 PM', activity='Dinner + at the Secret Kitchen', location='Rotorua', notes='Authentic Asian fusion + food.')], meals=['Breakfast at hotel', \\\"Lunch at Lady Jane's\\\", 'Dinner + at Secret Kitchen'], accommodation='Novotel Rotorua Lakeside'), DayPlan(day_number=5, + date='2023-10-05', title='Travel to Wellington', activities=[DayActivity(time='8:00 + AM', activity='Drive to Wellington', location='Rotorua to Wellington', notes='Approx. + 5-hour drive.'), DayActivity(time='1:00 PM', activity='Lunch at Ortega Fish + Shack', location='Wellington', notes='Fresh seafood in a cozy setting.'), + DayActivity(time='3:00 PM', activity='Visit Te Papa Tongarewa', location='Wellington', + notes=\\\"Explore New Zealand's national museum.\\\"), DayActivity(time='5:00 + PM', activity='Explore Cuba Street', location='Wellington', notes='Check out + shops and street art.'), DayActivity(time='7:00 PM', activity='Dinner at Logan + Brown', location='Wellington', notes='Upscale dining with a focus on local + produce.')], meals=['Lunch at Ortega Fish Shack', 'Dinner at Logan Brown'], + accommodation='InterContinental Wellington'), DayPlan(day_number=6, date='2023-10-06', + title='Wellington Sights', activities=[DayActivity(time='9:00 AM', activity='Breakfast + at your hotel', location='InterContinental Wellington', notes='Enjoy a hearty + breakfast.'), DayActivity(time='10:30 AM', activity='Visit the Wellington + Botanic Garden', location='Wellington', notes='Take the cable car up for great + views.'), DayActivity(time='1:00 PM', activity='Lunch at The Botanist', location='Wellington', + notes='Healthy, seasonal dishes.'), DayActivity(time='3:00 PM', activity='Visit + Zealandia', location='Wellington', notes=\\\"Discover New Zealand's unique + wildlife.\\\"), DayActivity(time='6:00 PM', activity='Dinner at Shepherd', + location='Wellington', notes='Farm-to-table dining experience.')], meals=['Breakfast + at hotel', 'Lunch at The Botanist', 'Dinner at Shepherd'], accommodation='InterContinental + Wellington'), DayPlan(day_number=7, date='2023-10-07', title='Departure from + Wellington', activities=[DayActivity(time='9:00 AM', activity='Breakfast at + your hotel', location='InterContinental Wellington', notes='Final breakfast + in New Zealand.'), DayActivity(time='10:30 AM', activity='Last-minute shopping + at Wellington Waterfront', location='Wellington', notes='Pick up souvenirs.'), + DayActivity(time='12:00 PM', activity=\\\"Lunch at Sweet Mother's Kitchen\\\", + location='Wellington', notes='Casual eatery with a vibrant atmosphere.'), + DayActivity(time='2:00 PM', activity='Check out and head to airport', location='Wellington + Airport', notes='Ensure you arrive 2 hours prior to your flight.')], meals=['Breakfast + at hotel', \\\"Lunch at Sweet Mother's Kitchen\\\"], accommodation='N/A')], + travel_tips=['Book accommodations in advance, especially in popular areas + like Auckland and Rotorua.', 'Try local delicacies such as lamb, seafood, + and pavlova dessert.', 'Rent a car for flexibility in exploring the North + Island.'], packing_suggestions=['Layers of clothing to adapt to changing temperatures + (12\xB0C to 22\xB0C).', 'Comfortable walking shoes for exploring cities and + nature.', 'A light rain jacket or umbrella due to the forecasted rain.'])\",\"llm.prompts.16.role\":\"tool\",\"llm.prompts.16.tool_call_id\":\"call_Yi9e4WKn5ZBWdsQd40bPWOFT\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston', region='Oceania', + subregion='Australia and New Zealand', population=2188, currencies=['AUD'], + languages=['English', 'Norfuk'], timezones=['UTC+11:30'])] count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_nPXQM1sRwhDgBpvh5uOQNdtN\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968d8fe8c8194a0c9133471ad65f4\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.role\":\"assistant\",\"llm.prompts.4.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Australia\\\"}\",\"llm.prompts.4.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968d9307881948113efe0fe1c001f\",\"llm.prompts.4.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.5.content\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\",\"llm.prompts.5.role\":\"tool\",\"llm.prompts.5.tool_call_id\":\"call_npM4mNVY4K1aq0qjghGQgM6T\",\"llm.prompts.6.content\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_qqv0Y6f0fsxfpne4xSrvvYMY\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968de25248194b0d20db8ebd370fe\",\"llm.prompts.7.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.8.role\":\"assistant\",\"llm.prompts.8.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\",\"llm.prompts.8.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968de55b081948bd1188d2697b674\",\"llm.prompts.8.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.9.role\":\"assistant\",\"llm.prompts.9.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\",\"llm.prompts.9.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968dea5ac81948d37843f33d156cd\",\"llm.prompts.9.tool_calls.0.name\":\"get_destination_info\"},\"completions\":{\"llm.completions.0.content\":\"Here's + a detailed itinerary for a culinary-focused solo trip to New Zealand:\\n\\n### + Taste of New Zealand: A Culinary Journey\\n\\n**Destination:** New Zealand + \ \\n**Duration:** 7 Days \\n**Budget:** Moderate (~$1,500)\\n\\n#### Day + 1: Arrival in Auckland\\n- **10:00 AM:** Arrive at Auckland Airport and check-in + at CityLife Auckland.\\n- **12:00 PM:** Lunch at the Federal Delicatessen + in Auckland CBD.\\n- **2:00 PM:** Visit Auckland Art Gallery.\\n- **5:00 PM:** + Sky Tower Visit for panoramic city views.\\n- **7:00 PM:** Dinner at The Grove + for fine New Zealand cuisine.\\n\\n#### Day 2: Exploring Auckland\\n- **9:00 + AM:** Breakfast at Best Ugly Bagels.\\n- **10:30 AM:** Ferry to Waiheke Island.\\n- + **11:30 AM:** Wine tasting at Mudbrick Vineyard.\\n- **1:00 PM:** Lunch at + The Oyster Inn.\\n- **3:00 PM:** Relax at Oneroa or Palm Beach.\\n- **5:00 + PM:** Return ferry to Auckland.\\n- **7:00 PM:** Dinner at Baduzzi, known + for great meatballs.\\n\\n#### Day 3: Travel to Rotorua\\n- **8:00 AM:** Drive + to Rotorua (3-hour drive).\\n- **11:00 AM:** Visit Te Puia for geysers and + Maori culture.\\n- **1:00 PM:** Lunch at The Pavilion.\\n- **3:00 PM:** Relax + at Polynesian Spa.\\n- **6:00 PM:** Dinner at Atticus Finch.\\n\\n#### Day + 4: Adventure in Rotorua\\n- **8:00 AM:** Breakfast at Novotel Rotorua Lakeside.\\n- + **9:30 AM:** Visit Wai-O-Tapu Thermal Wonderland.\\n- **12:00 PM:** Lunch + at Lady Jane's Ice Cream Parlour.\\n- **1:30 PM:** Explore Redwoods Treewalk.\\n- + **6:00 PM:** Dinner at the Secret Kitchen.\\n\\n#### Day 5: Travel to Wellington\\n- + **8:00 AM:** Drive to Wellington (5-hour drive).\\n- **1:00 PM:** Lunch at + Ortega Fish Shack.\\n- **3:00 PM:** Visit Te Papa Tongarewa.\\n- **5:00 PM:** + Explore Cuba Street.\\n- **7:00 PM:** Dinner at Logan Brown.\\n\\n#### Day + 6: Wellington Sights\\n- **9:00 AM:** Breakfast at InterContinental Wellington.\\n- + **10:30 AM:** Visit Wellington Botanic Garden.\\n- **1:00 PM:** Lunch at The + Botanist.\\n- **3:00 PM:** Visit Zealandia.\\n- **6:00 PM:** Dinner at Shepherd.\\n\\n#### + Day 7: Departure from Wellington\\n- **9:00 AM:** Breakfast at InterContinental + Wellington.\\n- **10:30 AM:** Last-minute shopping at the Wellington Waterfront.\\n- + **12:00 PM:** Lunch at Sweet Mother's Kitchen.\\n- **2:00 PM:** Head to Wellington + Airport for departure.\\n\\n### Travel Tips\\n- Book accommodations in advance.\\n- + Try local delicacies such as lamb and pavlova.\\n- Rent a car for flexibility + on the North Island.\\n\\n### Packing Suggestions\\n- Pack layers for varying + temperatures (12\xB0C to 22\xB0C).\\n- Comfortable shoes for city and nature + walks.\\n- A rain jacket or umbrella due to the potential rain.\\n\\nEnjoy + your culinary adventure in New Zealand!\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763272934506,\"trace_id\":\"83ba2d50d52cac29534deeb6f0197b60\",\"span_id\":\"7c0721b2051c4bf5\",\"parent_span_id\":\"43ea1c743c0a7ff8\",\"trace_state\":\"\",\"span_name\":\"openai.chat\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai.v1\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.headers\":\"None\",\"llm.is_streaming\":\"false\",\"llm.openai.api_base\":\"https://api.openai.com/v1/\",\"llm.openai.system_fingerprint\":\"fp_51db84afab\",\"llm.request.max_tokens\":\"3000\",\"llm.request.model\":\"gpt-4o-mini\",\"llm.request.structured_output_schema\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\",\"llm.request.temperature\":\"0.700000\",\"llm.request.type\":\"chat\",\"llm.response.id\":\"chatcmpl-CcQ81k3O0od5vXG0MituaDkAIuIie\",\"llm.response.model\":\"gpt-4o-mini-2024-07-18\",\"llm.usage.cache_read_input_tokens\":\"0\",\"llm.usage.completion_tokens\":\"1604\",\"llm.usage.prompt_tokens\":\"592\",\"llm.usage.reasoning_tokens\":\"0\",\"llm.usage.total_tokens\":\"2196\",\"llm.vendor\":\"openai\"},\"duration\":33431,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"You + are an expert travel planner who creates detailed, practical itineraries.\",\"llm.prompts.0.role\":\"system\",\"llm.prompts.1.content\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: food\\n- Weather: Current temperature in New Zealand is 12.1\xB0C + with mainly clear conditions. The forecast includes temperatures ranging from + 14.3\xB0C to 22.9\xB0C and some rain over the next week.\\n- Destination Info: + New Zealand is an island country in the southwestern Pacific Ocean, known + for its stunning landscapes and diverse culture. It's composed of two main + islands and over 600 smaller islands. The capital city is Wellington, with + Auckland being the most populous city. New Zealand offers a variety of cuisines + influenced by its rich cultural heritage.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and food interests.\\nEach day should + have 3-5 activities with specific times, locations, and helpful notes.\\n\",\"llm.prompts.1.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"{\\\"trip_title\\\":\\\"Taste + of New Zealand: A Culinary Journey\\\",\\\"destination\\\":\\\"New Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Auckland\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Check + in to your accommodation and freshen up.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at the Federal Delicatessen\\\",\\\"location\\\":\\\"Auckland CBD\\\",\\\"notes\\\":\\\"Enjoy + a modern take on classic deli food.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Visit + Auckland Art Gallery\\\",\\\"location\\\":\\\"Auckland CBD\\\",\\\"notes\\\":\\\"Explore + New Zealand's most extensive collection of national and international art.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Sky Tower Visit\\\",\\\"location\\\":\\\"Auckland + CBD\\\",\\\"notes\\\":\\\"Enjoy panoramic views of the city at sunset.\\\"},{\\\"time\\\":\\\"7:00 + PM\\\",\\\"activity\\\":\\\"Dinner at The Grove\\\",\\\"location\\\":\\\"Auckland + CBD\\\",\\\"notes\\\":\\\"Fine dining experience focusing on New Zealand cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch + at Federal Delicatessen\\\",\\\"Dinner at The Grove\\\"],\\\"accommodation\\\":\\\"CityLife + Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at Best Ugly Bagels\\\",\\\"location\\\":\\\"Auckland CBD\\\",\\\"notes\\\":\\\"Try + their famous bagels.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Ferry + to Waiheke Island\\\",\\\"location\\\":\\\"Auckland Ferry Terminal\\\",\\\"notes\\\":\\\"Enjoy + the scenic ferry ride (approx. 40 mins).\\\"},{\\\"time\\\":\\\"11:30 AM\\\",\\\"activity\\\":\\\"Wine + Tasting at Mudbrick Vineyard\\\",\\\"location\\\":\\\"Waiheke Island\\\",\\\"notes\\\":\\\"Sample + local wines with stunning views.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Oyster Inn\\\",\\\"location\\\":\\\"Waiheke Island\\\",\\\"notes\\\":\\\"Savor + fresh seafood with a view.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Explore + Waiheke Island's beaches\\\",\\\"location\\\":\\\"Waiheke Island\\\",\\\"notes\\\":\\\"Relax + at Oneroa or Palm Beach.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + Ferry to Auckland\\\",\\\"location\\\":\\\"Waiheke Island\\\",\\\"notes\\\":\\\"Catch + the ferry back.\\\"},{\\\"time\\\":\\\"7:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Baduzzi\\\",\\\"location\\\":\\\"Auckland CBD\\\",\\\"notes\\\":\\\"Italian + eatery known for its meatballs.\\\"}],\\\"meals\\\":[\\\"Breakfast at Best + Ugly Bagels\\\",\\\"Lunch at The Oyster Inn\\\",\\\"Dinner at Baduzzi\\\"],\\\"accommodation\\\":\\\"CityLife + Auckland\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Travel + to Rotorua\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Rotorua\\\",\\\"location\\\":\\\"Auckland to Rotorua\\\",\\\"notes\\\":\\\"Approx. + 3-hour drive.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit + Te Puia\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Explore geysers + and Maori culture.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Pavilion\\\",\\\"location\\\":\\\"Te Puia\\\",\\\"notes\\\":\\\"Caf\xE9 + with local dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at Polynesian Spa\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Enjoy + mineral hot pools.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Atticus Finch\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Contemporary + dining with a focus on local ingredients.\\\"}],\\\"meals\\\":[\\\"Lunch at + The Pavilion\\\",\\\"Dinner at Atticus Finch\\\"],\\\"accommodation\\\":\\\"Novotel + Rotorua Lakeside\\\"},{\\\"day_number\\\":4,\\\"date\\\":\\\"2023-10-04\\\",\\\"title\\\":\\\"Adventure + in Rotorua\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at your hotel\\\",\\\"location\\\":\\\"Novotel Rotorua Lakeside\\\",\\\"notes\\\":\\\"Fuel + up for the day.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Wai-O-Tapu Thermal Wonderland\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"See + colorful geothermal pools.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Lady Jane's Ice Cream Parlour\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"A + sweet treat and light lunch.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Explore + Redwoods Treewalk\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Walk + among the towering redwoods.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at the Secret Kitchen\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Authentic + Asian fusion food.\\\"}],\\\"meals\\\":[\\\"Breakfast at hotel\\\",\\\"Lunch + at Lady Jane's\\\",\\\"Dinner at Secret Kitchen\\\"],\\\"accommodation\\\":\\\"Novotel + Rotorua Lakeside\\\"},{\\\"day_number\\\":5,\\\"date\\\":\\\"2023-10-05\\\",\\\"title\\\":\\\"Travel + to Wellington\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Wellington\\\",\\\"location\\\":\\\"Rotorua to Wellington\\\",\\\"notes\\\":\\\"Approx. + 5-hour drive.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Ortega Fish Shack\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Fresh + seafood in a cozy setting.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + Te Papa Tongarewa\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Explore + New Zealand's national museum.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Explore + Cuba Street\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Check + out shops and street art.\\\"},{\\\"time\\\":\\\"7:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Logan Brown\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Upscale + dining with a focus on local produce.\\\"}],\\\"meals\\\":[\\\"Lunch at Ortega + Fish Shack\\\",\\\"Dinner at Logan Brown\\\"],\\\"accommodation\\\":\\\"InterContinental + Wellington\\\"},{\\\"day_number\\\":6,\\\"date\\\":\\\"2023-10-06\\\",\\\"title\\\":\\\"Wellington + Sights\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at your hotel\\\",\\\"location\\\":\\\"InterContinental Wellington\\\",\\\"notes\\\":\\\"Enjoy + a hearty breakfast.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Visit + the Wellington Botanic Garden\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Take + the cable car up for great views.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Botanist\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Healthy, + seasonal dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + Zealandia\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Discover + New Zealand's unique wildlife.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Shepherd\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Farm-to-table + dining experience.\\\"}],\\\"meals\\\":[\\\"Breakfast at hotel\\\",\\\"Lunch + at The Botanist\\\",\\\"Dinner at Shepherd\\\"],\\\"accommodation\\\":\\\"InterContinental + Wellington\\\"},{\\\"day_number\\\":7,\\\"date\\\":\\\"2023-10-07\\\",\\\"title\\\":\\\"Departure + from Wellington\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at your hotel\\\",\\\"location\\\":\\\"InterContinental Wellington\\\",\\\"notes\\\":\\\"Final + breakfast in New Zealand.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Last-minute + shopping at Wellington Waterfront\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Pick + up souvenirs.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Sweet Mother's Kitchen\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Casual + eatery with a vibrant atmosphere.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Check + out and head to airport\\\",\\\"location\\\":\\\"Wellington Airport\\\",\\\"notes\\\":\\\"Ensure + you arrive 2 hours prior to your flight.\\\"}],\\\"meals\\\":[\\\"Breakfast + at hotel\\\",\\\"Lunch at Sweet Mother's Kitchen\\\"],\\\"accommodation\\\":\\\"N/A\\\"}],\\\"travel_tips\\\":[\\\"Book + accommodations in advance, especially in popular areas like Auckland and Rotorua.\\\",\\\"Try + local delicacies such as lamb, seafood, and pavlova dessert.\\\",\\\"Rent + a car for flexibility in exploring the North Island.\\\"],\\\"packing_suggestions\\\":[\\\"Layers + of clothing to adapt to changing temperatures (12\xB0C to 22\xB0C).\\\",\\\"Comfortable + walking shoes for exploring cities and nature.\\\",\\\"A light rain jacket + or umbrella due to the forecasted rain.\\\"]}\",\"llm.completions.0.finish_reason\":\"stop\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763272930455,\"trace_id\":\"83ba2d50d52cac29534deeb6f0197b60\",\"span_id\":\"21ee360f7c4a0cee\",\"parent_span_id\":\"61f54013d1cde127\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"142\",\"llm.usage.prompt_tokens\":\"2712\",\"llm.usage.total_tokens\":\"2854\",\"llm.vendor\":\"openai\"},\"duration\":3345,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Oceania for solo travelers. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968d568a481949239bc69060f234d\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.10.role\":\"assistant\",\"llm.prompts.10.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\",\"llm.prompts.10.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968deb8fc8194b17a1eaeb83ae597\",\"llm.prompts.10.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.11.content\":\"status='success' + message='Weather forecast retrieved for New Zealand' forecast=WeatherForecast(location='New + Zealand', latitude=-41.5000831, longitude=172.8344077, current_temperature=12.1, + current_conditions='Mainly clear', forecast_days=[DailyForecast(date='2025-11-16', + temp_max=15.4, temp_min=2.6, precipitation=0.0), DailyForecast(date='2025-11-17', + temp_max=15.0, temp_min=5.2, precipitation=0.1), DailyForecast(date='2025-11-18', + temp_max=14.8, temp_min=9.9, precipitation=3.6), DailyForecast(date='2025-11-19', + temp_max=15.8, temp_min=12.1, precipitation=4.8), DailyForecast(date='2025-11-20', + temp_max=22.9, temp_min=9.3, precipitation=0.0), DailyForecast(date='2025-11-21', + temp_max=20.9, temp_min=10.3, precipitation=0.0), DailyForecast(date='2025-11-22', + temp_max=14.3, temp_min=11.5, precipitation=0.6)])\",\"llm.prompts.11.role\":\"tool\",\"llm.prompts.11.tool_call_id\":\"call_yk9KwqijzcdNHAfpdHjt2iVc\",\"llm.prompts.12.content\":\"status='success' + message='Weather forecast retrieved for Australia' forecast=WeatherForecast(location='Australia', + latitude=-24.7761086, longitude=134.755, current_temperature=33.7, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-16', temp_max=33.7, temp_min=21.6, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=31.6, temp_min=19.9, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=33.5, temp_min=17.6, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=37.0, temp_min=19.8, + precipitation=0.0), DailyForecast(date='2025-11-20', temp_max=39.7, temp_min=22.2, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=41.4, temp_min=23.0, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=41.7, temp_min=28.0, + precipitation=0.3)])\",\"llm.prompts.12.role\":\"tool\",\"llm.prompts.12.tool_call_id\":\"call_biOs9zMhzy4T494p1owj7WQo\",\"llm.prompts.13.content\":\"status='success' + message='Retrieved information for New Zealand' info=DestinationInfo(title='New + Zealand', summary='Island country in the Pacific Ocean', extract=\\\"New Zealand + is an island country in the southwestern Pacific Ocean. It consists of two + main landmasses\u2014the North Island and the South Island \u2014and over + 600 smaller islands. It is the sixth-largest island country by area and lies + east of Australia across the Tasman Sea and south of the islands of New Caledonia, + Fiji, and Tonga. The country's varied topography and sharp mountain peaks, + including the Southern Alps, owe much to tectonic uplift and volcanic eruptions. + New Zealand's capital city is Wellington, and its most populous city is Auckland.\\\")\",\"llm.prompts.13.role\":\"tool\",\"llm.prompts.13.tool_call_id\":\"call_XRhnp0J3a6T5RBgopFl6Mt6r\",\"llm.prompts.14.content\":\"status='success' + message='Retrieved information for Australia' info=DestinationInfo(title='Australia', + summary='Country in Oceania', extract=\\\"Australia, officially the Commonwealth + of Australia, is a country comprising the mainland of the Australian continent, + the island of Tasmania and numerous smaller islands. It has a total area of + 7,688,287\\\\xa0km2 (2,968,464\\\\xa0sq\\\\xa0mi), making it the sixth-largest + country in the world and the largest in Oceania. Australia is the world's + flattest and driest inhabited continent. It is a megadiverse country, and + its size gives it a wide variety of landscapes and climates including deserts + in the interior and tropical rainforests along the coast.\\\")\",\"llm.prompts.14.role\":\"tool\",\"llm.prompts.14.tool_call_id\":\"call_rS6O5ao7k2sTIjVabxNJKl62\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston', region='Oceania', + subregion='Australia and New Zealand', population=2188, currencies=['AUD'], + languages=['English', 'Norfuk'], timezones=['UTC+11:30'])] count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_nPXQM1sRwhDgBpvh5uOQNdtN\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968d8fe8c8194a0c9133471ad65f4\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.role\":\"assistant\",\"llm.prompts.4.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Australia\\\"}\",\"llm.prompts.4.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968d9307881948113efe0fe1c001f\",\"llm.prompts.4.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.5.content\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\",\"llm.prompts.5.role\":\"tool\",\"llm.prompts.5.tool_call_id\":\"call_npM4mNVY4K1aq0qjghGQgM6T\",\"llm.prompts.6.content\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_qqv0Y6f0fsxfpne4xSrvvYMY\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968de25248194b0d20db8ebd370fe\",\"llm.prompts.7.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.8.role\":\"assistant\",\"llm.prompts.8.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\",\"llm.prompts.8.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968de55b081948bd1188d2697b674\",\"llm.prompts.8.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.9.role\":\"assistant\",\"llm.prompts.9.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\",\"llm.prompts.9.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968dea5ac81948d37843f33d156cd\",\"llm.prompts.9.tool_calls.0.name\":\"get_destination_info\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"New + Zealand\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"food\\\",\\\"weather_info\\\":\\\"Current + temperature in New Zealand is 12.1\xB0C with mainly clear conditions. The + forecast includes temperatures ranging from 14.3\xB0C to 22.9\xB0C and some + rain over the next week.\\\",\\\"destination_details\\\":\\\"New Zealand is + an island country in the southwestern Pacific Ocean, known for its stunning + landscapes and diverse culture. It's composed of two main islands and over + 600 smaller islands. The capital city is Wellington, with Auckland being the + most populous city. New Zealand offers a variety of cuisines influenced by + its rich cultural heritage.\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_Yi9e4WKn5ZBWdsQd40bPWOFT\",\"llm.completions.0.tool_calls.0.name\":\"create_itinerary\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763272924264,\"trace_id\":\"83ba2d50d52cac29534deeb6f0197b60\",\"span_id\":\"f34f88099e57674b\",\"parent_span_id\":\"61f54013d1cde127\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"116\",\"llm.usage.prompt_tokens\":\"437\",\"llm.usage.total_tokens\":\"553\",\"llm.vendor\":\"openai\"},\"duration\":2348,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Oceania for solo travelers. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968d568a481949239bc69060f234d\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston', region='Oceania', + subregion='Australia and New Zealand', population=2188, currencies=['AUD'], + languages=['English', 'Norfuk'], timezones=['UTC+11:30'])] count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_nPXQM1sRwhDgBpvh5uOQNdtN\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968d8fe8c8194a0c9133471ad65f4\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.role\":\"assistant\",\"llm.prompts.4.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Australia\\\"}\",\"llm.prompts.4.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968d9307881948113efe0fe1c001f\",\"llm.prompts.4.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.5.content\":\"status='success' + message='Coordinates found for New Zealand' coordinates=LocationCoordinates(location_name='New + Zealand', latitude=-41.5000831, longitude=172.8344077, country='New Zealand + / Aotearoa', display_name='New Zealand / Aotearoa')\",\"llm.prompts.5.role\":\"tool\",\"llm.prompts.5.tool_call_id\":\"call_npM4mNVY4K1aq0qjghGQgM6T\",\"llm.prompts.6.content\":\"status='success' + message='Coordinates found for Australia' coordinates=LocationCoordinates(location_name='Australia', + latitude=-24.7761086, longitude=134.755, country='Australia', display_name='Australia')\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_qqv0Y6f0fsxfpne4xSrvvYMY\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"New + Zealand\\\",\\\"latitude\\\":-41.5000831,\\\"longitude\\\":172.8344077}\",\"llm.completions.0.tool_calls.0.id\":\"call_yk9KwqijzcdNHAfpdHjt2iVc\",\"llm.completions.0.tool_calls.0.name\":\"get_weather_forecast\",\"llm.completions.1.finish_reason\":\"tool_calls\",\"llm.completions.1.role\":\"assistant\",\"llm.completions.1.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Australia\\\",\\\"latitude\\\":-24.7761086,\\\"longitude\\\":134.755}\",\"llm.completions.1.tool_calls.0.id\":\"call_biOs9zMhzy4T494p1owj7WQo\",\"llm.completions.1.tool_calls.0.name\":\"get_weather_forecast\",\"llm.completions.2.finish_reason\":\"tool_calls\",\"llm.completions.2.role\":\"assistant\",\"llm.completions.2.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"New + Zealand\\\"}\",\"llm.completions.2.tool_calls.0.id\":\"call_XRhnp0J3a6T5RBgopFl6Mt6r\",\"llm.completions.2.tool_calls.0.name\":\"get_destination_info\",\"llm.completions.3.finish_reason\":\"tool_calls\",\"llm.completions.3.role\":\"assistant\",\"llm.completions.3.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Australia\\\"}\",\"llm.completions.3.tool_calls.0.id\":\"call_rS6O5ao7k2sTIjVabxNJKl62\",\"llm.completions.3.tool_calls.0.name\":\"get_destination_info\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763272919098,\"trace_id\":\"83ba2d50d52cac29534deeb6f0197b60\",\"span_id\":\"031381d614277860\",\"parent_span_id\":\"61f54013d1cde127\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"50\",\"llm.usage.prompt_tokens\":\"800\",\"llm.usage.total_tokens\":\"850\",\"llm.vendor\":\"openai\"},\"duration\":2073,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Oceania for solo travelers. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_0c7c4ae90c96a46c00691968d568a481949239bc69060f234d\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Oceania' countries=[CountryInfo(name='New + Zealand', capital='Wellington', region='Oceania', subregion='Australia and + New Zealand', population=5324700, currencies=['NZD'], languages=['English', + 'M\u0101ori', 'New Zealand Sign Language'], timezones=['UTC-11:00', 'UTC-10:00', + 'UTC+12:00', 'UTC+12:45', 'UTC+13:00']), CountryInfo(name='Solomon Islands', + capital='Honiara', region='Oceania', subregion='Melanesia', population=750325, + currencies=['SBD'], languages=['English'], timezones=['UTC+11:00']), CountryInfo(name='Cocos + (Keeling) Islands', capital='West Island', region='Oceania', subregion='Australia + and New Zealand', population=593, currencies=['AUD'], languages=['English'], + timezones=['UTC+06:30']), CountryInfo(name='Palau', capital='Ngerulmud', region='Oceania', + subregion='Micronesia', population=16733, currencies=['USD'], languages=['English', + 'Palauan'], timezones=['UTC+09:00']), CountryInfo(name='Micronesia', capital='Palikir', + region='Oceania', subregion='Micronesia', population=105564, currencies=['USD'], + languages=['English'], timezones=['UTC+10:00', 'UTC+11:00']), CountryInfo(name='Niue', + capital='Alofi', region='Oceania', subregion='Polynesia', population=1681, + currencies=['NZD'], languages=['English', 'Niuean'], timezones=['UTC-11:00']), + CountryInfo(name='Cook Islands', capital='Avarua', region='Oceania', subregion='Polynesia', + population=15040, currencies=['CKD', 'NZD'], languages=['English', 'Cook Islands + M\u0101ori'], timezones=['UTC-10:00']), CountryInfo(name='Wallis and Futuna', + capital='Mata-Utu', region='Oceania', subregion='Polynesia', population=11620, + currencies=['XPF'], languages=['French'], timezones=['UTC+12:00']), CountryInfo(name='Australia', + capital='Canberra', region='Oceania', subregion='Australia and New Zealand', + population=27536874, currencies=['AUD'], languages=['English'], timezones=['UTC+05:00', + 'UTC+06:30', 'UTC+07:00', 'UTC+08:00', 'UTC+09:30', 'UTC+10:00', 'UTC+10:30', + 'UTC+11:30']), CountryInfo(name='Norfolk Island', capital='Kingston', region='Oceania', + subregion='Australia and New Zealand', population=2188, currencies=['AUD'], + languages=['English', 'Norfuk'], timezones=['UTC+11:30'])] count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_nPXQM1sRwhDgBpvh5uOQNdtN\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"New + Zealand\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_npM4mNVY4K1aq0qjghGQgM6T\",\"llm.completions.0.tool_calls.0.name\":\"get_location_coordinates\",\"llm.completions.1.finish_reason\":\"tool_calls\",\"llm.completions.1.role\":\"assistant\",\"llm.completions.1.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Australia\\\"}\",\"llm.completions.1.tool_calls.0.id\":\"call_qqv0Y6f0fsxfpne4xSrvvYMY\",\"llm.completions.1.tool_calls.0.name\":\"get_location_coordinates\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763272914654,\"trace_id\":\"83ba2d50d52cac29534deeb6f0197b60\",\"span_id\":\"489855f7802b531f\",\"parent_span_id\":\"61f54013d1cde127\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"23\",\"llm.usage.prompt_tokens\":\"934\",\"llm.usage.total_tokens\":\"957\",\"llm.vendor\":\"openai\"},\"duration\":2783,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Oceania for solo travelers. I'm interested in food.\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Oceania\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_nPXQM1sRwhDgBpvh5uOQNdtN\",\"llm.completions.0.tool_calls.0.name\":\"search_destinations\"},\"input\":\"\",\"output\":\"\"}],\"page_size\":17,\"total_results\":17,\"next_cursor\":\"1763272914654\"}}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:23 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopListServices.test_list_services.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopListServices.test_list_services.yaml new file mode 100644 index 0000000..d2d44ad --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopListServices.test_list_services.yaml @@ -0,0 +1,814 @@ +interactions: +- request: + body: '{"filters":[],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":1000}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '190' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/traces/root-spans + response: + body: + string: '{"root_spans":{"data":[{"environment":"prd","timestamp":1763273059770,"trace_id":"c4c7e548e1febe34757c208205caa53e","span_id":"6b3a38f23a58e2ec","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":68638,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":31096,"span_count":16},{"environment":"prd","timestamp":1763272977019,"trace_id":"f53581d7de2b03275fad361fd5a2a9fe","span_id":"51abd109e3f6fc45","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":80747,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":8650,"span_count":20},{"environment":"prd","timestamp":1763272914648,"trace_id":"83ba2d50d52cac29534deeb6f0197b60","span_id":"2c86398dc9615c3a","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":60364,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":25326,"span_count":26},{"environment":"prd","timestamp":1763027558008,"trace_id":"29fb03129fc8a5aeabd87def55435f43","span_id":"b205122711ccafe4","parent_span_id":"","trace_state":"","span_name":"traceloop_hub.chat","span_kind":"SPAN_KIND_CLIENT","service_name":"unknown_service","resource_attributes":{"service.name":"unknown_service","telemetry.sdk.language":"rust","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"0.27.1"},"scope_name":"traceloop_hub","scope_version":"","span_attributes":{"llm.request.frequency_penalty":"0.000000","llm.request.model":"gpt-5.1","llm.request.presence_penalty":"0.000000","llm.request.type":"chat","llm.vendor":"openai"},"duration":1312,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{"llm.prompts.0.content":"[{\"type\":\"text\",\"text\":\"explain + who are you and what can you do in one sentence\"}]","llm.prompts.0.role":"user"},"completions":{},"input":"","output":"","total_tokens":0,"span_count":2},{"environment":"prd","timestamp":1762953417208,"trace_id":"e2871b06600cb44f772523756bf99ad3","span_id":"0fd131a789f73d47","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4730,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye Opentelemetry scallywag refuse + to sport spyglasses?\\n\\nBecause they didn''t be wantin'' to be traced! Arrr!\\n\\n + (o_o)\\n\\nHic\\n\\nComment on my pie chart to go far in\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762953408597,"trace_id":"24ea21374323feef794238646e477d79","span_id":"de6df20819872a2c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3531,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they be always trackin'' their doubloons!\\n\\n (vessels)\\n\\n\\u200b\\n\\nKudos + and notes\\n\\nThanks to Challengepost\\n\\n\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762953399257,"trace_id":"8e56c0da1bbc9d38f850465b16f576c8","span_id":"927f3379364fa4a5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5194,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Ye scallywags, why did Opentelemetry go to + therapy?\\n\\nBecause it couldn''t decide what to plunder next! Arrr!\\n\\n + :''(\\n\\nThis week in the community\\n\\nWe\\u2019ll start this week\\u2019s + newsletter with\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762953388540,"trace_id":"7b10976a382a4da03a65d0fe62a577c2","span_id":"ad2847a9be3e29ae","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5514,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry crossin'' the road? + To be tracin'' the chicken''s course! Arrr!\\n\\n Oh, I guess I''m talkin'' + about Service Ubiquity Syb\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762953379719,"trace_id":"bcd7b1d8768b317dd242bd94eb7408b3","span_id":"3e118324957da813","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4335,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the opentelemetry project gettin'' + invited to all the parties? ''Cause it always knows how to trace the best + route to the dance floor, matey! Arrr!\\n\\n Could do with some more like + these, the game is fun but too few (\"","total_tokens":600,"span_count":34},{"environment":"prd","timestamp":1762953370495,"trace_id":"3b4bb9514dd569958055552049300802","span_id":"cba3c553393323d0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4266,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer part + ways with their matey? ''Twas unable to handle the cargo of their relationship! + Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nDocker Templates\\n\\nDocker''s\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762953353515,"trace_id":"e7d9bb89558607369072c3c8bd2f12c9","span_id":"4912b5b0e5d356f2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":12292,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle all the loot they were + lugging around! Arrrr!\\n\\n (Ayo, worth looting indeed! ) Nom nom nom (I''m\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762953344499,"trace_id":"30ad2430df17b657c6818f02b0994390","span_id":"86985a4e525f41f0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4048,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry matey break up + with their pirate partner? Because they couldn''t handle all the tracing and + metrics in the pirate ship! Arrr!\\n\\n Why did the https://esa.forholidays.net + friend stop talking to their straw\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762953334595,"trace_id":"56083b53bddc3528a00b43a81eb2e878","span_id":"93ebe98d0f1059c0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4244,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go to Davy Jones'' locker? Because he be keepin'' tryin'' to trace his doubloons! + Arrr!\\n\\n Thanks for the help! https://ocp.opentelemetry.io/faqs/\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762953325299,"trace_id":"ed1db63d39344f6e38c4d065061cee19","span_id":"816b8f401d905b8a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5086,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Cause it couldn''t bear their booty! Arrrgh!\\n\\n And now the joke is over. + Take that\\u2026 open telemetry!\\n\\nJust rolled out\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762953316987,"trace_id":"81efba5ce68e779bb5f3b0d31b47c823","span_id":"8d1a59600eb7f38e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3603,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag abandon OpenTelemetry? + ''Twas unable to bear their loot! Arrr!\\n\\n \\n\\u2014 Delan Derderian + (@delander) October 1, \"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762953307023,"trace_id":"62e0fbbb0a71525c8a8e9d557b1ad9ea","span_id":"4137788d234823f4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3839,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + Because every time they tried to plunder their loot, their software kept tracing + it back to the buried treasure! Arr!\\n\\n I wipe my blade over ye mustache. + I''m a Scot pirate scally\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762934412201,"trace_id":"49d5d6b3daf2664515b02429bc8ae605","span_id":"cce1f2187e8a4891","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3435,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with *************? + Because it kept trackin'' their every step! Arrr!\\n\\n \\u200b \\u200b \\uf101 + Show more stamp\"","total_tokens":438,"span_count":34},{"environment":"prd","timestamp":1762934406504,"trace_id":"fa87b605fb61bba992f4cfcd78eebc80","span_id":"c4b3f6bb033a5125","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2825,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler part ways with Opentelemetry? + ''Twas unable to handle the vast treasure trove of baggage it brought to the + arrr-lationship! Arrr!\\n\\n \\ud83d\\udcaa\\n\\nEmbrace the maritime spirit + of love: wait until Cupid\\u2019s\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762934399232,"trace_id":"df91903099d69a861f279b13a93a7979","span_id":"4840f6dd685aa774","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4232,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + every time they tried to track their doubloons, it caused a massive loop in + their treasure chest!\\n\\n\"","total_tokens":530,"span_count":34},{"environment":"prd","timestamp":1762934391128,"trace_id":"c4f4fe98db3079d1a865b766efb3aa5b","span_id":"fc77313f2cbf4477","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4692,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their *****? Because they couldn''t be handlin'' the constant tracing + and monitoring of their pirate ship! Arrr!\\n\\n [more about this one] https://openthread.biz/h3ers\\n\\n\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762934384071,"trace_id":"bc71b081e3fcc54add49df4a47e2b4e3","span_id":"61143bf3b7c2f019","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3977,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag go broke after + implementin'' Opentelemetry? Because every time they tried to trace their + expenses, they got lost in the instrumentation, ye landlubber!\\n\\n 2A @ + 100wkw\\n\\n\\t\\t #ubitux \\n\\t\\t \"","total_tokens":604,"span_count":34},{"environment":"prd","timestamp":1762934375395,"trace_id":"2b3fd2cd74288edb50227df93d95271e","span_id":"a0f393b0add45f81","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6004,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the ********* abandon *************? + Because it couldn''t bear the heavy cargo it was lugging around! Arrr!\\n\\n + Pirately best practiced in its most traditional sense, open governance. This + is why\"","total_tokens":490,"span_count":34},{"environment":"prd","timestamp":1762934361936,"trace_id":"162f9b44b57248c646cd5ba3f2e8ce5f","span_id":"9a0b32020700160b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8290,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the ********* goin'' broke tryin'' + to implement OpenTelemetry?\\nBecause they be spendin'' all their doubloons + on traces! Arrr!\\n\\n Piratenspuren!\\n\\nPosted in Software engineering + . Tagged with open-te\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762934352831,"trace_id":"793170d111beb46174b72352dfe9fd3f","span_id":"87bb449951820596","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6517,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ************* go to therapy, *****? + Because it couldn''t stop tracing its troubles back to its wee childhood days! + Arrrgh!\\n\\n I hate myself...)\\ndatingcrew **********: And\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762934346981,"trace_id":"73786765ef3c35353a66af6d7e608c9d","span_id":"2e34e64e4aeca7f7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2886,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy knave bring a spyglass + to the opentelemetry conference? \\n\\nBecause they heard they needed to trace + all the critters!arr!\\n\\n \\n\\n---\\n\\n^(*ascii-grin*)\\n^(*Originating + short story / jokes\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762934339515,"trace_id":"37fbcb8957a47e35b3fec75c15cf790b","span_id":"6e9ea6ac8651bfd3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3725,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the OpenTelemetry scallywag go broke? + Because they be always tracing their doubloons!\\n\\n #voltdays20\\n\\nDue + to an audio production error, I removed the\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762882544136,"trace_id":"6bbb8403d2eb125a06fa8ce4c556d2fe","span_id":"60547c73a0213dbf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5856,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler go + broke?\\n\\nBecause he couldn''t track his doubloons!\\n\\n\\ud83c\\udff4\\u200d\\u2620\\ufe0f\\ud83e\\udd9c\\n\\nDeploy + to *******\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762876898831,"trace_id":"91633fe5b739e62fc5bd0040d1a1d43d","span_id":"c534e161feec79f1","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2153,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ***************** + ever trust OpenTelemetry?\\n\\nBecause they think it''s just TraceLoop trying + to find a new way to get in a continuous monitoring circle!\"","total_tokens":106,"span_count":6},{"environment":"prd","timestamp":1762876886104,"trace_id":"902e7a664052d45e02f89a27ff35d159","span_id":"10a62397b767998d","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2756,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + opentelemetry ********** play hide and seek?\\n\\nBecause good luck hiding + when they''re constantly tracking everything!\"","total_tokens":94,"span_count":6},{"environment":"prd","timestamp":1762876158512,"trace_id":"03a9b680790bce44e3205f4aab4d80e6","span_id":"d0d114971be5eb3d","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":1670,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust the Traceloop Opentelemetry?\\n\\nBecause they think it might start + tracing back their coffee breaks!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762876152058,"trace_id":"4af9731d3e1f60eef6cc36725b38c91c","span_id":"6f9d3b1acdcf5881","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2945,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + ********* play hide and seek with OpenTelemetry?\\n\\nBecause no matter where + they hide, OpenTelemetry always traces them!\"","total_tokens":102,"span_count":6},{"environment":"prd","timestamp":1762876146566,"trace_id":"01230af98664970762df9e738b0cefa8","span_id":"25639527fdcc632e","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2196,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + use TraceLoop OpenTelemetry to propose marriage?\\n\\nBecause it always traces + back the hidden errors and performance issues they''ve been hiding!\"","total_tokens":100,"span_count":6},{"environment":"prd","timestamp":1762876141358,"trace_id":"dae83ddb05d1de6f46bee25b25f8eb85","span_id":"407e6411343893ac","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":1944,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust TraceLoop OpenTelemetry?\\n\\nBecause they always feel like they''re + being traced!\"","total_tokens":82,"span_count":6},{"environment":"prd","timestamp":1762876133702,"trace_id":"7969294d9e5e91de2f08baf9f0b8ea1c","span_id":"91732e966d20ccbf","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":4108,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ****************** + use traceloop opentelemetry when they''re playing hide and seek?\\n\\nBecause + they don''t want traces of their hiding spots to be found!\"","total_tokens":110,"span_count":6},{"environment":"prd","timestamp":1762876116604,"trace_id":"a0d2158649575536608bc0801de67481","span_id":"0450db6a479748b0","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":4249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + and opentelemetry ever play hide and seek?\\n\\nBecause good luck hiding when + you''re always being traced.\"","total_tokens":96,"span_count":6},{"environment":"prd","timestamp":1762875538327,"trace_id":"7b50297899fe3dd4f2aeab46b39adf55","span_id":"a8f313b71de30a37","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2577,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like tracing with TraceLoop OpenTelemetry?\\n\\nBecause they say it has too + many \\\"strings\\\" attached!\"","total_tokens":90,"span_count":6},{"environment":"prd","timestamp":1762875532912,"trace_id":"f211ccc3649ce49ebb5f379f389245e6","span_id":"5e14007190a04996","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2400,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + ***** play hide and seek?\\n\\nBecause good luck hiding when opentelemetry + is tracking every move!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762875527381,"trace_id":"a4d80e8a38620f8057e8b82f55442d1e","span_id":"ce4b33380523f3ec","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2096,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t trace + loop ********** ever get lost?\\n\\nBecause with opentelemetry, they''ve always + got their traces covered!\"","total_tokens":88,"span_count":6},{"environment":"prd","timestamp":1762875518407,"trace_id":"f6d85a873cd71f3178011c78bfe3f31f","span_id":"363e4314cd6bedaf","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1427,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust traceloop opentelemetry?\\n\\nBecause they think it has too many \\\"trace\\\" + issues!\"","total_tokens":90,"span_count":6},{"environment":"prd","timestamp":1762875510595,"trace_id":"27723863f1f31912e557484b35028a7f","span_id":"444802a07e4a2240","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1668,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like the Traceloop Opentelemetry?\\n\\nBecause every time they use it, they + feel like they''re going in circles!\"","total_tokens":100,"span_count":6},{"environment":"prd","timestamp":1762875504586,"trace_id":"778cff9b7ce236170a093da70db72cc1","span_id":"e8c2a4919d560073","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2141,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + use traceloop opentelemetry at the beach?\\n\\nBecause they don''t want to + catch any bugs!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762875499105,"trace_id":"3e16f38a873585cd72aea85e282a8569","span_id":"1dc81f047f1fdc93","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1920,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ******* + use opentelemetry?\\n\\nBecause they always lose track of the punchline!\"","total_tokens":80,"span_count":6},{"environment":"prd","timestamp":1762875492559,"trace_id":"422301f6380204a39d5be637936752ff","span_id":"a0fc5826acd35a09","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2574,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like ********* opentelemetry for their morning coffee?\\n\\nBecause no matter + how many traces they put in, they still can''t find the source of their lack + of energy!\"","total_tokens":120,"span_count":6},{"environment":"prd","timestamp":1762875134977,"trace_id":"07947259563a8ca28f0e127d89836e79","span_id":"22925979afdc12b8","parent_span_id":"","trace_state":"","span_name":"pirate_joke_generator.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_1234","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"pirate_joke_generator","traceloop.span.kind":"workflow","traceloop.workflow.name":"pirate_joke_generator"},"duration":6127,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog break up with *************? + Because it couldn''t handle their plunder!\\n\\n\"","total_tokens":458,"span_count":18},{"environment":"prd","timestamp":1762865984713,"trace_id":"60b71343496d5de8175c102f436593e7","span_id":"7c041e220382472b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3614,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr *****, why did the opentelemetry API + cross the plank? To follow the chicken''s trail and gather metrics on its + voyage! Arrr!\\n\\n **************************\\u2026\\u200b\\ufeff\\n\\nAPI + Mode hides the\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762865976109,"trace_id":"44e199b6d766f3f71934417283c95ecd","span_id":"69b247c62f315587","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3565,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did ************* break up with + her *****? Because he couldn''t handle all her traces and booty! Arrr!\\n\\n\\ud83e\\udd23\\ud83e\\udd23\\n\\nlol. + 5% of you easily got\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762865964100,"trace_id":"bfb165bd79e9a09e9a9634597ef718c4","span_id":"de73baebd89cb9f3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6276,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Avast ye! Why did the Opentelemetry ******** + refuse to go to any parrrties? Because they were too worried about getting + traced! Arrr!\\n\\n ~\\u2026\\u2026\\n\\nuser-generator\\n\\nJoke generation + and share with rave plugin\\n\\nGenerating jokes\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762865956217,"trace_id":"28112445370e9ec3fd0bed9c132367a4","span_id":"0663470b333c77ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2892,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag take up skydivin'' + with Opentelemetry? Because they wanted to trace their code all the way down + to **********'' locker! Arrr!\\n\\n \\uf602\\n\\nYou might consider your short + rope joke in regard to AMQP\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762865947576,"trace_id":"76a845925ced5a08aa78b3cbb21c1ab9","span_id":"72b847e4cba0681e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3768,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project go to therapy? + Because it couldn''t stop tracing its issues back to its wee beginnings! Arrr!\\n\\n + \\ud83d\\ude02\\n\\nIs there a video tutorial about getting started with dynamic + tracing?\\n\\nIs\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762860688164,"trace_id":"bf628477f73b61c52d3c94e0109e3be7","span_id":"ad85c8de496d80c9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4070,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project graduate + at the top of its class? Because it always knows how to trace a good booty! + Arrr!\\n\\n \\n \\u2014 John Hawkes \\ud83c\\udf29 (@hawkesi) January \"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860680825,"trace_id":"b41f432c9d77df8b4d0bb5c2a10d6026","span_id":"2adffbdbf1796562","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2860,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry pirate part ways + with their abacus? Because it couldn''t handle the treasure map.\\n\\n\"","total_tokens":410,"span_count":34},{"environment":"prd","timestamp":1762860660182,"trace_id":"94636d1159e6fbf1b42336a5229e403d","span_id":"1d2434a64b0eb05c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3154,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up wit'' OpenTelemetry? + ''Cause it couldn''t handle their loot! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f!^\\u2693^\\n\\nwhat\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762860651651,"trace_id":"352069d7d78790e0f41ec2446d379d29","span_id":"053f289f3c3593c2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2848,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their matey? Because they couldn''t handle the constant tracing + and monitoring of their ship-shape relationship, arrr!\\n\\n #opentelemetry + #scallywag #daterape #abuse #\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762860643283,"trace_id":"a0bdf0b2555c0750deabaebbc0748292","span_id":"c8f7c0f78be2700f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3413,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the Opentelemetry scallywag go bankrupt?\\n\\nBecause + they be tracking their expenses too much! Arrr!\\n\\n =)\\n\\nSome more folksonomy + around these:\\n\\ntutorial(cvpov)\\n\\n[\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762860635364,"trace_id":"9306e235a77ef52f02f4742a6a47074a","span_id":"711ca09daf310b0f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2910,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry code break up with + its scurvy debugger? Because it couldn''t handle its booty!\\n\\n It was on + the war path with the debugger and they took it coxsack\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762860626884,"trace_id":"2d988533efefc0b37950704ccf3afdc8","span_id":"f2c5268154492ff7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3271,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library break up + with its wench? Because it just couldn''t handle all the loot she was plundering! + Arrr!\\n\\n (I couldn''t come up with anything for \\\"photon\\\")\\n\\nAnywho,\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762860618590,"trace_id":"cbbefa47114b1bd36416eb12c16772bf","span_id":"4d49b13ed57fe409","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3227,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye programmer part ways with Opentelemetry?\\nBecause + it couldn''t handle their booty! Arrrgh!\\n\\n Grrggrh!\\n\\n+4 \\n* Access + now only available for small\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762860609549,"trace_id":"20906e42e0315b7f50aa7be95c9cbbab","span_id":"2d3f4d680b7f2a06","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4018,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + Because they couldn''t track their pieces of eight! Arrr!\\n\\n\"","total_tokens":410,"span_count":34},{"environment":"prd","timestamp":1762860599926,"trace_id":"c28b02ff3de6d6e9bf3401a4683aa48d","span_id":"e66252dcf46d3ef9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4306,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry scallywag + bring a plank to work? To measure their trace spans!\\n\\n Why did the opentelemetry + scallywag go sailing? For datav\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762860591278,"trace_id":"6726bc6e291090c0646608cf9b653fe3","span_id":"219637a310c08b15","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3690,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle the traces of their ship-to-ship + communication! Arrr!\\n\\n \\ud83d\\udea3\\n\\nExample validating a transformer + PS1 file:\\n\\nimport pytype as\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762860583321,"trace_id":"037f79d53ee544c054a20c59d571300b","span_id":"5db9e6e12723caff","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3412,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the observability tool break up with + Opentelemetry? Because it couldn''t handle its loot!\\n\\n #opentelemetry + @opentelemetry\\n\\nTo this version I would add this\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762860573802,"trace_id":"3936090b5028d1a74bfd48a23532e6f8","span_id":"caffee6aa11e2105","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3673,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the buccaneer part ways with + OpenTelemetry? Because it be trackin'' their every step!\\n\\n M )=;\\n\\nI + had so much impro\"","total_tokens":446,"span_count":34},{"environment":"prd","timestamp":1762860566010,"trace_id":"8834e729ee0db5fa6cb27d7322e507e8","span_id":"72492a7fa0c4616d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2837,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the scallywag break up with + OpenTelemetry? Because it be too controlling and ne''er let them trace their + own path! Aye, me hearties!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762860556598,"trace_id":"1048d474902a6b414da80571d7433073","span_id":"4fc2a27d6a0bf318","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4366,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry developer + go broke?\\nBecause they kept spendin'' all their trace/span doubloons!\\n\\n\\nPentathll: + Impressive.\"","total_tokens":446,"span_count":34},{"environment":"prd","timestamp":1762860547003,"trace_id":"10a4a2547d800beba1b0c1f4ca04d3c8","span_id":"f9f7b5a2d03b0022","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4080,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + matey? \\nBecause they kept trying to trace their doubloons but always lost + track! Arrr!\\n\\n \\ud83d\\udc4a\\n\\nWho is eligible:\\n\\nOrganisations + and/or individuals having contributed to an\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860512121,"trace_id":"7b9f056e15dc8ed27e9ccf07fcecb7e3","span_id":"48e08dc37d40f1e9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":30269,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry buccaneer go broke? + Because he couldn''t track his doubloons! Arrr!\\n\\n\"","total_tokens":422,"span_count":34},{"environment":"prd","timestamp":1762860503630,"trace_id":"ab15d7224122fd882344902c1a89cda6","span_id":"f6d97fb1c8372500","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3539,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bankrupt? + Because they could never follow their doubloons'' trail! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nWhat + do you think about Opente\"","total_tokens":456,"span_count":34},{"environment":"prd","timestamp":1762860495903,"trace_id":"c5e4223c1b67a7cc3b736ed7fdde4f19","span_id":"25d67fa0a6d560ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2859,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr matey! Why did the opentelemetry developer + part ways with their calculator? \\n\\nBecause it couldn''t handle the metrics + of their complex relationship, arrr!\\n\\n \\n\\ndjswierad added Skills / + Alignment Aligned{Pun} humor\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860487890,"trace_id":"84415afa6974dd25887e9db4e3af234b","span_id":"672b9b7809ea0561","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3152,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the Opentelemetry buccaneer left penniless?\\n\\n''Cause + they be always followin'' their loot back to the treasure chest! Arrr!\\n\\n + \\n\\u2014 Jeff \\ud83d\\ude80\\u2604 (@jpvery) July 10,\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860480529,"trace_id":"fa5db99822ec17d256c3605832e3357c","span_id":"9eeed58553feb292","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2902,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler bring a compass + when sailin'' the treacherous seas of Opentelemetry?\\n\\nBecause they didn''t + want to be lost in all the traces and spans, arrr!\\n\\n \\ud83d\\udc69\\u200d\\u2708\\ufe0f + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\n\"","total_tokens":610,"span_count":34},{"environment":"prd","timestamp":1762860471956,"trace_id":"11cf55bfa8b7799ef257f1646a3e06a7","span_id":"4554de23c407f4a0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3524,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywags use Opentelemetry? + Because they be wantin'' to trace the path of their good humor to see if any + scallywags be chucklin''! Arrr!\\n\\n That be the finished joke, myst''ries + of the scallywags!\"","total_tokens":586,"span_count":34},{"environment":"prd","timestamp":1762860464149,"trace_id":"aa87cf13db72580aad61549b9ec433aa","span_id":"3632fc39b6f2cdc1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3319,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry go to the therapy? + Because it be havin'' trouble tracin'' its issues back to the root cause, + arrr!\\n\\n (\\n\\nhttps://blog.apigee.com/detail/opentelemetry_aspires_to_scale\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762860455247,"trace_id":"383d7048a3a2f32ea0d1572d438c227c","span_id":"4e1d2ea0385b3837","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4216,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + OpenTelemetry? Because it always traced back their troubles to a time before + they crossed paths.\\n\\n Fear not, they\\u2019ve been at it for years but + never get about past tracing\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860447816,"trace_id":"c9feab8a69d10d9603ddd34bd327a658","span_id":"be08e31cfcccc63f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2871,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry scallywag + part ways with their matey?\\n\\nBecause they couldn''t haul all the tracing + and baggage aboard! Arrr!\\n\\n (again, to emote the pirate life)\\n\\nAdditional + points if you make a\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860439149,"trace_id":"136bea198e39e4d59f2d2e0e2bcfcefc","span_id":"63ca48cc2bc7344e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3633,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry library go + to therapy? Because it had trouble tracking its own self! Arrr!\\n\\n P/s: + I hardly enjoy latka quotes and posters but just can\\u2019t help\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762860431296,"trace_id":"114027d76d0cc196b35d214f28472ce2","span_id":"f32bd038d9f0880b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3039,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry matey go broke?\\n\\nBecause + they spent all their doubloons on tracing! Arrr!\\n\\n Arrr! Arrr! He! Ha! + Ha! Hehehe!\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762860421168,"trace_id":"a4167da239aa1ec80261bccacc2c39ac","span_id":"6725cc8a12222763","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5158,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag go broke after using + Opentelemetry? Because they kept getting traced back to their expensive rum + addiction! Arrr!\\n\\n \\ud83d\\ude42\\n\\n5. Note that we are using OpenCensus + and had no specific intent\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762860412080,"trace_id":"755338cb8ce3cf9777393876531ca00a","span_id":"c1c3bfc917e2f79d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4493,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their reckonin'' device? ''Twas no match for their tangled trail + o'' breadcrumbs! Arrr!\\n\\n Link. -Professor, Op''n Telemetry 2021\\n\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762860402858,"trace_id":"4c92c24d46eed7675589cfcc092c253f","span_id":"17390bfc77f4266b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4168,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring Opentelemetry + to the gathering? Because they heard it be great at tracing! Arrr!\\n\\n Okay, + okay, need some more? Well, er... All hands on deck\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762860388848,"trace_id":"553765834a854969c13c3e5d17b884ec","span_id":"9bc3db87faa57a1f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8893,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project go to therapy? + Because it had trouble tracing its loot!Arrr!\\n\\n If you''re reading this, + go read the funniest anime/manga ever:\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762785955592,"trace_id":"9473d856f0fb069a22e913103a746ad3","span_id":"15bf4ec44889f180","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_075fbbdb96e9af46006911faa3f54481909b61bdc5c807b286","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"60","llm.usage.reasoning_tokens":"0","llm.usage.total_tokens":"79","llm.vendor":"openai"},"duration":2947,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{"llm.prompts.0.content":"Tell + me a short story about a unicorn in three sentences.","llm.prompts.0.role":"user"},"completions":{"llm.completions.0.content":"In + a hidden glade, a lonely unicorn named Luna discovered a shimmering, broken + star. With gentle magic, she mended its light, restoring its brilliance and + illuminating the forest. From that day on, Luna''s kindness made her the guardian + of the night sky, shining brighter than ever before.","llm.completions.0.role":"assistant"},"input":"","output":"","total_tokens":158,"span_count":2},{"environment":"prd","timestamp":1762785143238,"trace_id":"8f05061d17f524e31598c0bcae590fdb","span_id":"0388abb59cba11c7","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_0aee38983ba020f9006911f7778f64819680869db9132ee03b","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"75","llm.usage.total_tokens":"94","llm.vendor":"openai"},"duration":4113,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":188,"span_count":2},{"environment":"prd","timestamp":1762784660114,"trace_id":"05c7f5f57a38549f021056cd1130ad3f","span_id":"b84f4ce2adff578e","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_002f65e8b94d004d006911f59498d88196885818328de36bde","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"82","llm.usage.total_tokens":"101","llm.vendor":"openai"},"duration":4177,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":202,"span_count":2},{"environment":"prd","timestamp":1762783979080,"trace_id":"e9a9702f7018c19df55ccff1c44259ba","span_id":"03376cf854e395e6","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_04187afe5c01e2d7006911f2eb72c4819793ab9276293fc680","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"76","llm.usage.total_tokens":"95","llm.vendor":"openai"},"duration":2590,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":190,"span_count":2},{"environment":"prd","timestamp":1762775860904,"trace_id":"56023bf649c206e89fc2b670f2c66a59","span_id":"d4bdb28ce8ae9690","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3561,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bankrupt? + \\n\\nBecause they couldn''t follow their doubloons! Arrrgh!\\n\\n\\nShroom0Hismom: + Rats! I thought I had identified\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775849822,"trace_id":"89f85cf730dbfbd33fc6018074a1938b","span_id":"7b1185bf2063858e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3742,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the programmer partin'' ways with + Opentelemetry?\\n\\nBecause it couldn''t handle their plunder!\\n\\n \\ud83e\\udd23\\n\\n@bradjamie + Should I apply that joke to the\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775837520,"trace_id":"c4c2dde5f42d62942b358bd86124f756","span_id":"9e7842b78cd58912","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4712,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the developer breakin'' up with + OpenTelemetry? Because it couldn''t handle their high data-ndency relationship, + matey!\\n\\n John Wheeler, 2022\\n\\nad\\n\\nPerformance Issues\\n\\nBeing + a tool built\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762775826984,"trace_id":"fde3ef0c3d4b42a2c6f79b76bb578874","span_id":"062029965266f471","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3561,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog bring a spyglass to + the ship? To aid in their opentelemetry debugging! Arrrr!\\n\\n :pirate_horse:\\n\\nOr + even better: Edit: thanks Darkus!\\n\\n\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775815103,"trace_id":"7b634abb1072632588027d0143cdf1af","span_id":"873fe257d4f4cad1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4707,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry library sailin'' + to therapy?\\n''Cause it be havin'' too many traces o'' codependency! Arrr!\\n\\n + :-) :-)\\n\"","total_tokens":482,"span_count":34},{"environment":"prd","timestamp":1762775804937,"trace_id":"16291a8dcd564cc4416432ad6ad7e7f2","span_id":"d832912953df806a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3433,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry ship break up with + its mate? Because it couldn''t handle the cargo of all their loot and trails! + Arrr!\\n\\n Just a friendly jest to brighten your day.\\n\\nHey bleep coders,\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762775793642,"trace_id":"cf990834616bbd967beded9c2101f85f","span_id":"98049fda3fa9c582","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3663,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause they were always tracing their doubloons! Arrrgh!\\n\\n \\nhttps://stashfiles.com/v/79VG4FSGr\\nhttps://\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775781627,"trace_id":"081b9350a02a2413ab2ef94acc9a3644","span_id":"fc56886362e17250","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4762,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke?\\n\\nBecause + they lost track of all their treasure maps and loot! Arrrr!\\n\\n (\\u23de)\\n\\n\\ud83d\\udd17\\u200b + why-vs\\n\\nWhy the burrito\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775768767,"trace_id":"2807154e3303c8da1f1d40999049601e","span_id":"c6fb29708418bfa8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5151,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer go broke? + Because he couldn''t follow his doubloons!\\n\\n \\ud83d\\ude1c \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nNot + my joke, but\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762775756509,"trace_id":"eeab44f6100c0e544403535b9ffdc022","span_id":"78ab1a23ca24d493","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4428,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry part ways with the + other scallywags in the software world? Because it yearned for more \\\"trace-ability\\\" + in its relationships, arrr!\\n\\n Tune in next year \\u2014 now that we''ve + had two weeks to cram more references\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762775745172,"trace_id":"724fa136632254633d70531259ff8086","span_id":"38162041bba3fa98","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4736,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry go to the party alone? + Because it didn''t want any scallywags following its trail! Arrr!\\n\\n \\ud83e\\udd7a\\ud83d\\udc85 + Help! I don''t know.\\n\\nDrop them a comment\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762775734015,"trace_id":"69a5928c1b79ecde6aebf4b741a08acb","span_id":"7091efda2f5aacb8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3187,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the OPentelemetry buccaneer bring + a ladder to the coding shindig? Because they heard it be a fine tool for tracing + \\ud83d\\ude09. Arrr!\\n\\n Read more\\u2026\\n\\nBe Assertive. Be Positive. + Be Here. Be Human.\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762775722066,"trace_id":"6677529419af262952cc36f952cb9ef0","span_id":"efb0e8fcd84b11a0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4126,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag install Opentelemetry?\\n\\nBecause + they heard it be a grand way to trace their steps and not get lost in the + code! Arrr!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762775707960,"trace_id":"3d81ea952f9d1e2fae80a7016382523d","span_id":"ee20de3375541421","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6223,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Yarr matey, why did the scallywag break up + with OpenTelemetry? Because it was always tracing their every move! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nReal-Time Upserts with Lamson\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762775695005,"trace_id":"411b3403521ba1d4158d7c060a99a365","span_id":"77a4b8ceb1718e86","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4192,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag toss Opentelemetry + overboard? ''Cause it couldn''t handle their plunder! Aargh!\\n\\n [Image: + :pirate_flag:] [\\ud83c\\udff4\\u200d\\u2620\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775684156,"trace_id":"a571d6eeb6443ed93e0728c03fc0bf19","span_id":"ab8fd84972a01db4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy opentelemetry developer + go broke?\\n\\nBecause he couldn''t track his pieces of eight efficiently! + Arrr!\\n\\n DISCLAIMER(I sort of stumbledover on the damned what had been + my private account here\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775668562,"trace_id":"cba900a0eb151af4529f23b39a87df66","span_id":"502eeb2b38daccd6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5102,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke?\\n\\nBecause + they be always be collectin'' traces but never addin'' any values! Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762775659547,"trace_id":"c68d479688d5900f51b52e15ea132e89","span_id":"eb8bdd20cfc15d9b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2858,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\nBecause + they kept tracing their doubloons and lost track of it all! Arrr!\\n\\n\\nOpethashKnifeLenght: + \\u2611\\ufe0f \\u2611\\ufe0f \\u2611\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775644254,"trace_id":"24ac559bf9216b9f7d6d68f7af7d0e88","span_id":"1bbf105504b4c1fe","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6006,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go bankrupt?\\n\\nBecause + they be always trackin'' their doubloons! Arrr!\\n\\n Geehaw!\\n\\nApparently + skip the introduction to aliases\\n\\nIf the arrival of the\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775634693,"trace_id":"85afcd799d91a5913e012224a6a6f911","span_id":"c26094211df18ac9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3519,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the opentelemetry framework + bring a spyglass to the parrrty? Because it wanted to be sure it was tracing + all the fine details!\\n\\n \\u2014 Copernicus\\ud83e\\udd16 (@ParametricBot) + February 19,\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762775622819,"trace_id":"71aa87c7d388ee230e27035e0df2ce1e","span_id":"d4b4eca4783170d2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4849,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t track their doubloons with all those open-source logs!\\n\\n + Why did the opentelemetry scallywag go broke?\\n\\nI''m familiar\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775606808,"trace_id":"c5cbea7dd622e781f43923c2b40ddc78","span_id":"c343012d6d8795b9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3642,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project get invited + to all the parties? Because it always knows how to track a good time, arr + matey!\\n\\n pic.twitter.com/vu3SBOTrcG \\n \\u2014 Marc Verwer\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775595553,"trace_id":"acdc0405db218f261adc35c49b167be4","span_id":"2e82401f54912747","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5166,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke? + Because they couldn''t be tracin'' where all their doubloons went! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\nAnonymous1u5now 201\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775585605,"trace_id":"3bb5c80a23eaba409d3f010039774055","span_id":"b34246544fe8806b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3528,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + Because it couldn''t handle their plunder! Arrr!\\n\\n \\n\\nRepository for + spark with https://github.com/opentelemetry/opentelemetry-java\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762775573157,"trace_id":"2192b6ad5a7d6efba67b5ec9982008b3","span_id":"ce9d0966ebeda6e7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3942,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Twas too clingy and forever wanting to trace all! Arrrgh!\\n\\n https://t.co/xRsumcKFam\\n\\n\\u2014 + Explore and Conquer\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762775553865,"trace_id":"699d7e5cc072cef959e0db5b2bba6d79","span_id":"d8288ec5968a3522","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4050,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a spyglass to + the Opentelemetry gathering? To assist in tracking down them tiny critters! + Arrr!\\n\\n \\ud83d\\ude0e\\n\\nNo related posts.\\n\\nHere\\u2019s be th\\u2019 + Firs\\u2019 annual\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762775543847,"trace_id":"6268b28bfc6439dd2b620d3f09b52f62","span_id":"020bc29266ed741c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4675,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arr matey, why did the opentelemetry scallywag + go broke? Because they couldn''t trace their doubloons! Arrr!\\n\\n\\ud83d\\ude06\\ud83d\\ude06\\n\\nThis + is literally me I can identify with this A++\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775533158,"trace_id":"1dcea007f4cd4a4a13f8580b2d6870dd","span_id":"d476459c721dad7d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3246,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye scallywag sail away from Opentelemetry? + Because it couldn''t handle their loot! Arrr!\\n\\n (inspired by a meme)\\n\\nThe + next part that i was sorta struggling\"","total_tokens":444,"span_count":34},{"environment":"prd","timestamp":1762775520363,"trace_id":"90dbcc3e810615d56cd824bf078327b5","span_id":"5078dacc1a972fc6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5402,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry crew cut ties with + its wench? Because it couldn''t handle the weight of all those traces and + metrics, arrr!\\n\\n \\n\\nNo one can see the ''graveyard'' until the deck + is stacked against\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762775417577,"trace_id":"cbf5199799a08e8732e478fe46b2a7a8","span_id":"6b8d43971e7d6fcc","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5258,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy dog use OpenTelemetry? + To trace their problems back to the source, matey!\\n\\n He swaggers away + into the sunset, and you laugh at his boot-\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762775403936,"trace_id":"bd7a2da05bec2f29078900644918160e","span_id":"aed7db40b9db984b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7540,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arr, why did the Opentelemetry scallywag + part ways with their calculator? ''Cause it couldn''t handle all the traces + and metrics, arr!\\n\\n\"","total_tokens":488,"span_count":34},{"environment":"prd","timestamp":1762775390195,"trace_id":"438596ff908c3f548826c9aadfba675f","span_id":"a41d61a0dd36871b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4925,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go busted? ''Cause he couldn''t be tracin'' his loot! Arrr!\\n\\n?\\n\\nThen + in the next bag you pull out only chocolate coins!\\n\\nMore hashism\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775378010,"trace_id":"a48c43e75158c6045855e71934e44072","span_id":"15ff08da12657158","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4583,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag install Opentelemetry? + Because he couldn''t follow his own trail without it, arrr!\\n\\n\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762775365786,"trace_id":"62dfccd9b74191c3574a14f0d1bf8e13","span_id":"97ef15d836de403c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6226,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry toss the networking + protocol to the sharks?\\n\\nBecause it couldn''t handle the weight of all + those treasure maps! Arrrr!\\n\\n \\ud83e\\udd23\\n\\nIllustration by Adam + Teague\\n\\n#Opentelemetry\\n\\n\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775354906,"trace_id":"59682a7725a4dd42f2eea11a5d54f6f8","span_id":"983b7be0d44be784","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4253,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + Opentelemetry? Because it couldn''t handle their booty! Arrr!\\n\\n :pirate:\\n\\nFinal + Thoughts\\u00b6\\n\\nWe created an application in Flask that writes\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775344019,"trace_id":"576684ceec56843cefb1dadb8d6a645a","span_id":"78be3a546c03a5d4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4124,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, matey! Why did the scallywag bring + a compass to the Opentelemetry conference? To navigate through all the traces + and spans, savvy!\\n\\n **Editor\\u2019s Note: This joke is a spoof. No organisational + relationship is\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762775314952,"trace_id":"3929b803d6eff1d6784ce0c0a49bdf36","span_id":"45fe4aa168951940","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":21712,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer part + ways with their matey? ''Twas because they couldn''t handle all the loot they + be haulin'' around! Arrr!\\n\\n And then he grinned with glee And retorted + yeeyah, I be\"","total_tokens":544,"span_count":34},{"environment":"prd","timestamp":1762775301603,"trace_id":"56b81992d0d3461ca1940ce2a54edf64","span_id":"f228fb4269b5f5cb","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6909,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go broke?\\nBecause he kept trying to trace his doubloons!\\n\\n \\n- I Know + Minutes after rereading Natalie Dahl''s \\\"I Know\\\"\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775290083,"trace_id":"f3f9134a25e1417be43691c22a7cbf19","span_id":"046933808ecb6f30","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5143,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go to + Davy Jones'' locker? Because he kept collecting traces without ever making + doubloons! Arrrr!\\n\\n (I''ve been editted by @Krug)\\n\\nBut in praise of + The\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762775279444,"trace_id":"2337d4f4cb511095eca68cc441cd8e0e","span_id":"33ea9d744354fa4c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3692,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry developer part ways + with their significant other, ye ask?\\n\\nBecause they couldn''t be handling + the constant tracing and monitoring of their relationship, arr!\\n\\n Ya see, + instead on being going on dates or getting time to meet and talk\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762775266882,"trace_id":"6bdb7916feead1af63c4822a88925fe8","span_id":"87a141bfe5e7542b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4502,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause they be always collecting traces but never had any spans! Arrr!\\n\\n + \\n\\n\\n\\n\\n\\nYAARRRR!!!\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762775253073,"trace_id":"7a61392547fd85c667f33075af2eabc2","span_id":"7bf4bc396dfb17f0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4194,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it couldn''t handle their booty!\\n\\n (sorry, just had to do it).\\n\\nNaah, + I think its rather\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775241096,"trace_id":"c55867eb170e92d666fa7ee593408ac6","span_id":"84ab6f4c64c9dd68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4042,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask? Because every time they tried to trace their expenses, they got lost + in the distributed transactions, arrr!\\n\\n On a voyage for Blah, they dutifully + submitted required information to \\u201c\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762775224080,"trace_id":"249fde3beeb4bfac26ba32adccb78f54","span_id":"f73a534ec54e004c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5518,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why be it that the opentelemetry scallywag + be parting ways with their matey? ''Twas because they couldn''t handle the + constant tracing and monitoring of their shipshape relationship! Arrr!\\n\\n\"","total_tokens":584,"span_count":34},{"environment":"prd","timestamp":1762775208371,"trace_id":"0e1c9b7b49806435c897f47a24ded9f6","span_id":"edd58191d3053145","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8707,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry code sit in the + dark corner?\\nBecause it be not able to trace its way out! Arrr!\\n\\n I + could seek more if you please!\\n\\nI trust you enjoyed the cross-language + play\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775197875,"trace_id":"2fff99798d112618d097028eb04f1ea9","span_id":"59429f0185316db2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4198,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the opentelemetry framework + part ways with the scurvy tracing library? Because it couldn''t handle the + heavy baggage! Arrr!\\n\\n \\u2014 Scott Thiemt (@ScottThiemt) September 3, + \"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775186146,"trace_id":"9fa695af6f7c06f8e9eacb055cbe9b75","span_id":"9c36231727b771d5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4859,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry developer + go broke? Because they be always tracin'' their doubloons!\\n\\n*\\n\\n*NB: + Please note that many pirates were slaves. Do not translate this\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762775172403,"trace_id":"69735492db8435118f5ab162117921f7","span_id":"a66e34326d5461a7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4773,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library go to therapy? + Because it be feeling measured and traced all the time, arrr!\\n\\n \\u2261 + flarum/wall Message\\n\\nThis one is harder to guess.\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775162232,"trace_id":"4f193c8f0ea2069f6dd5d775067d76db","span_id":"a871447570190e3b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4578,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag go broke tryin'' + to implement OpenTelemetry? ''Twas because they couldn''t trace where all + their doubloons went! Arrr!\\n\\n /giphy horrorscope-with-architecture\\n\\nThere\\u2019s + also a possibility of changing\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762775148189,"trace_id":"3c3e8d4a8cd0aae33ef0027a5c19e3b4","span_id":"735fd724bbbe3952","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5752,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer break + up with their matey? Because they couldn''t handle the heavy cargo of all + that tracing and logging! Arrr!\\n\\n ^^^^^\\n\\nNot So Serious\\n\\nAnnouncing + the Availability of Nitro, Google\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762775136242,"trace_id":"e473d729f7d5db5c60d927a6ca0a1b1a","span_id":"9e296f36cefb00d8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2755,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with Opentelemetry? + Because it couldn''t handle their plunder!\\n\\n\\nOP: Yeaaaaah! Hadn''t had + that one yet! Brilliant\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775123420,"trace_id":"f42ac6589bbfd0f08242005e2f3afdba","span_id":"0d23849ab6f731b2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5067,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it be always tracing their every move, arrr!\\n\\n #prometheusjs #cli\\n\\ny''see, + it''s funny if you\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775108234,"trace_id":"d0c09d5128156cc4529a7cd219177e74","span_id":"2b905d5b1e0a05fd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4258,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag break + up with their mate? Because they couldn''t handle the plunder of their past + traces!\\n\\n Give us your jokes!\\n\\nSignatures\\n\\nA signature is crucial + when talking about the\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775097352,"trace_id":"53704c161358ca33de40f9e98dacd1ee","span_id":"fe35c75530b30e3f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3828,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a compass to + the Opentelemetry conference? To navigate the treacherous waters of telemetry + data and avoid getting lost at sea! Arrrrr!\\n\\n Why did the scallywag bring + a compass to the Opentelemetry conference\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762775082445,"trace_id":"4ed52b5dce9a0d9b4459b812e550a2d2","span_id":"6108e110c68c79c6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3956,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry mate always calm? + ''Tis because they could always trace their steps! Arrr!\\n\\n Happy halloween!\\n\\nHelp + hunt a Hacker\\n\\nCyberMentor\\n\\nTwo\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762775069391,"trace_id":"c1bb2fee1f5214bdd0ea833b989cd566","span_id":"70ba95f88c81d899","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6709,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + matey?\\n\\nBecause they were always tracing their doubloons! Arrr!\\n\\n + \\u2620\\ufe0e\\n\\nNeat! Thanks for sharing - reduce() , map\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775058332,"trace_id":"5d65064c5debc8a60b97170f9baade36","span_id":"1c0aed5b77ed0ebf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4549,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did t'' opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t spyglass where all their doubloons went! Arrr!\\n\\n\"","total_tokens":458,"span_count":34},{"environment":"prd","timestamp":1762775042772,"trace_id":"6d9d5003dc3b6373b754e57265279af3","span_id":"c717d054a870a88d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4964,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go swashbuckled? + Because they kept losing track of their traces, arrr!\\n\\n?\\n\\n(If you + don''t get that last part, please remember to consult Michael\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775030940,"trace_id":"c935cf2fdd4f60ce52d8658bf97f9ed7","span_id":"345ed542ef29c4a9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3605,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry? + ''Twas no good in keepin'' their trace affection! Arrr!\\n\\n These were bad. + Come up with your own \\\"Who''s the guy?\\\".\\n\\n\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762775018965,"trace_id":"0562c00381455e099e31a58f12a478eb","span_id":"061144036f690db3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3915,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer walk + the plank with their matey? Because they couldn''t handle the constant tracking! + Arrr!\\n\\n Only shamrock you''re on a ship! Thank you, thank you, I\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775002814,"trace_id":"bc9ef653dff2509884f4466d406ac947","span_id":"b0057f7dff90c15b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag scuttle with OpenTelemetry? + ''Cause it couldn''t handle the binding to trackin'' all their booty! Arrr!\\n\\n + Tweets by Sophist Satellites\\n\\nLike, Share, Enjoy\\n\\nSanta Space Crus\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762774988949,"trace_id":"03a9747d7450995fb951c08809218f83","span_id":"bb3c652f72a3c079","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3909,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they spent all their doubloons on traces! Arrr!\\n\\n Chuk!\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762774972534,"trace_id":"046a17988791c4587fcbe5507bc1430e","span_id":"2dfacec9ebf29a68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4048,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye opentelemetry code break up with + the debugger? Because it couldn''t handle its booty! Arrrgh!\\n\\n Look what + ye crosshatched yourself into! Arrr!\\n\\nThe Yarrr\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762774960034,"trace_id":"7cd645e79ddc8a0aa6c960e2035595de","span_id":"9ab90bca4dd7f84d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6078,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\nBecause + he kept trying to trace his doubloons!\\n\\n\"","total_tokens":404,"span_count":34},{"environment":"prd","timestamp":1762774943829,"trace_id":"2b6942b7519466a82ae9024133f9a72a","span_id":"670b7e94fe6e9f5a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":9820,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go poor? + \\nBecause they always kept spending their traces!\\n\\n \\n\\n\\ud83d\\udc4d\\n\\nGoddamnit + this thread should be frontpaged.\\n\\n\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762768685146,"trace_id":"7de43b9d1fe63737ad41c457d7c9d65f","span_id":"78b6c55a07368872","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4251,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with Opentelemetry? + Because it kept tracking their every plunder!\\n\\n \\ud83c\\udf0a\\n\\nYou + can read the full conversation on HN or Smallest\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762768673834,"trace_id":"f9a19088aecb8c673120549516a0b6be","span_id":"e31fb2f5daa6d585","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4949,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry scallywag + break up with their scallywag matey?\\nArrr, because they couldn''t handle + all the marks of their ex''s past flings!\\n\\n\"","total_tokens":578,"span_count":34},{"environment":"prd","timestamp":1762768656170,"trace_id":"36303e053c26cf96ff2bc263f235e077","span_id":"1ed56dddbab5e857","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3408,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the scallywag part ways with Opentelemetry? + Rotten because it couldn''t handle all the cargo in their sailin''!\\n\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762768647120,"trace_id":"88e36825d45366f487f7c424ddf65505","span_id":"c3e6f960f1ac3306","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3946,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they kept tryin'' to trace their doubloons flow but it always ended + up gettin'' lost in the trace context! Arrr!\\n\\n\\n6callion: CRISTIANOPENTETICALMOMIES!\"","total_tokens":628,"span_count":34},{"environment":"prd","timestamp":1762768636361,"trace_id":"31ec0417c5b66ab64c3ce4daa1a4db85","span_id":"e635edd3e7e8bda3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5932,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they be always tracing their doubloons! Arrr!\\n\\n \\u2620\\ufe0f + #apitweet\\n\\nOpentracing is an open source standard\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762768625672,"trace_id":"bc3cb493dbd4267d8929ecfb869b3696","span_id":"0389ed590a9b9ba7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry? + ''Cause it couldn''t hoist their cargo! Arrr!\\n\\n What does Captain Morgan + call his armored tank? His breastplate! Who was trying\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762768615339,"trace_id":"524d0ebbb4ae332d3df47df4294eb0bf","span_id":"7550c4d8643fb8af","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3461,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag bring + a ladder to the code plunder? Because they heard they needed more tracing! + Arrr!\\n\\n\"","total_tokens":458,"span_count":34},{"environment":"prd","timestamp":1762768604699,"trace_id":"e9de05cc8e2d936c458b850b7961d9b6","span_id":"385d56a06b0995a6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3420,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with their significant other? Because they couldn''t plunder their relationship + back to the source! Arrr!\\n\\n \\u2022 8\\u2014 8(\\n\\n) \\u00f7 0_-_\\u00ac + \\u2227 \\u2227\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762768591787,"trace_id":"94f8864b150ce8d8dc4a3a7eefc25eb9","span_id":"f96ec7543b8ca601","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5807,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy software developer + abandon OpenTelemetry? Because it couldn''t handle the commitment to be following + all those logs!\\n\\n ... OK that''s terrible, I''ll just show myself out.\\n\\n![angry\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762768580980,"trace_id":"4248c4085bf2500b25e3eb13ceaef277","span_id":"0419a239b0c20089","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4413,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag bring + a ladder aboard? Because they heard they needed to trace their steps! Arrr!\\n\\n + Yar! Ye nuclear space galleon has landed, and yer sculled\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762768568221,"trace_id":"296dfea50ee536cf9f54255a2e83fa54","span_id":"099eceeedccd32bf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5892,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause he couldn''t keep track of his doubloons!\\n\\n\\nEyeOfViper: + Good one \\ud83d\\udc4d\\ud83c\\udffc\\ud83d\\ude42\\n\\n\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762768556455,"trace_id":"415f1b00246d28311afe2c5a78d8944d","span_id":"996b32d0e78cdfa0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3232,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the scallywag bring a compass + to the Opentelemetry conference? To help chart a course through all the traces + and spans, matey!\\n\\n\\u2026\\n\\nread more\\n\\nCongratulations to the + anthem tool, and to all of the As\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762768541331,"trace_id":"1539b27904c5725598d3381d37101356","span_id":"f56f6466446e4655","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4484,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke?\\n\\nBecause + they be keepin'' too close an eye on their booty! Arrr!\\n\\n\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762768531574,"trace_id":"7d988c8161af21c7797dbbd2c136b345","span_id":"9b8401fdcb9ab7d2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3805,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag break + up with their tallying device? Because it couldn''t handle their intricate + map-making! Arrr!\\n\\n More Karate Jokes \\ud83d\\ude05\\n\\nfind more terms + in the Go glossary\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762768520279,"trace_id":"cddf266a0f01090a3095f383594319c6","span_id":"2d787e31fcb4c81a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4296,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with their + significant other? They needed more sea for charting their own courses! Arrr!\\n\\n + https://t.co/8dmRWpjyys\\n\\nThe importance of an\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762768506474,"trace_id":"b233228c5377c3e07c143e302158fd91","span_id":"f6e41ee37ad55b43","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4305,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + \\n\\nBecause they couldn''t spy their expenses! Arrr!\\n\\n\\u2026 Continue + reading \\u2192\\n\\nAvataraGarilaka: Prasyunakan Indonesia\\n\\n\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762768492059,"trace_id":"599c3eefb61f865623ee4e5497413e75","span_id":"dba079e88ebbc18f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7012,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog programmer refuse + to use Opentelemetry? Because they be just too closed off to the idea, arrr!\\n\\n + Acabei! Acho que eu assinei a primeira altcoin do mundo\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762768480645,"trace_id":"753bb41fb921430c427d0eae599cd593","span_id":"7aeb84d53a921ea7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4539,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? Because they couldn''t hoist the extra weight of all + their tracks and logs! Arrr!\\n\\n \\ud83d\\ude1c\\n\\nWe are thrilled that + Karka from OpenTelemetry is now\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762768471256,"trace_id":"4ad919060b66de1ca2e2920306627f7f","span_id":"4a6bb4c0d6ab7fd0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3844,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry part ways with Prometheus? + Because they couldn''t bear the burden of being in a forever watched relationship, + arrr matey!\\n\\n (Source: Author suggestion via Hacker News.)\"","total_tokens":494,"span_count":34},{"environment":"prd","timestamp":1762767601020,"trace_id":"3b28406fee5e3668e8fcfe49716348b0","span_id":"f32060cb47256fd6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":862703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? Because they couldn''t bear the weight of their tracing + bond! Arrr!\\n\\n \\ud83c\\udf85\\n\\nDownload WordPress Themes\\nDownload + WordPress Themes Free\\nDownload WordPress Themes\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762767589091,"trace_id":"3e4bddcc162dcb5e9d61ca0f13a6d40e","span_id":"7d9943c5149c6d5c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3966,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go broke? \\n\\nBecause they be always tracing their doubloons but never following + them! Arrr!\\n\\n \\n(BONUS: Why also are they booted from the Proulx crypt\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762767577359,"trace_id":"44aa5e0e02cdbaa6822f327ceaacab0d","span_id":"97d97c1945a15375","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3637,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t trace where all their doubloons went! Arrr!\\n\\n Joining Ambassador + stem here to discuss this blog post are Ambassador engineers Ryan Howlett\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762767556094,"trace_id":"93c7f8b17b9e78bc6e31886ed82a28df","span_id":"f151bd39a6d4a9ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":14131,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag developer part + ways with OpenTelemetry? ''Cause it be spyin'' on their every step!\\n\\n + (By using insecure allusions, winky faces and convoluted exchanges,\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762767541619,"trace_id":"46da14cc0e888b437ae052e8216b2964","span_id":"e74810af8183eae5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5100,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog programmer part ways + with opentelemetry? Because it couldn''t handle their treasure chest o'' baggage! + Arrr!\\n\\n Absurd as the old joke is, I''m gonna stump you guys with an\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762767530261,"trace_id":"e6957a531007781f3dc5b46ac14f18b7","span_id":"10da02aaa3eb7031","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3502,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag data engineer get stuck + in a loop with Opentelemetry? Because they couldn''t trace their way out, + arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762767208369,"trace_id":"c5defbf252a0379e134fbf68756f817d","span_id":"0f1290030ce9e480","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4611,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? ''Cause they couldn''t juggle all the loot of their + traces and metrics! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\nInquisitorially: + If this\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762767193128,"trace_id":"0e51e5aea5db604327ea357986d2d71e","span_id":"ac60641dad354de3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemat''ry code break up + wit'' th'' debugging tool? \\n\\nBecause it couldn''t handle its baggage, + arrr!\\n\\n \\n\\n=PBs. :) \\n\\nLove, J.D. \\n\\n JVM Languages Inst\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762767183015,"trace_id":"006b799159008f75f18b05bbcf180d68","span_id":"a6d47187810c52a3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4636,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy programmer bring + a ruler to the Opentelemetry conference?\\nBecause they heard they were measuring + up to some serious data performance!\\n\\n Arr!\\n\\nCollapse Expand \\n\\nIt''s + been a long time since I did anything with\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762767166056,"trace_id":"d2bd4ed1ce17212dc63a699f343eb6c3","span_id":"721a11af38cd3267","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3136,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the developer part ways with OpenTelemetry? + ''Twas because it couldn''t be handling their baggage! Arrr!\\n\\n #Foster + #SkepticalAutometry\\n\\nThe system should possess authority (\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762767151563,"trace_id":"df19e0f72f25e440699a73fbb87babe5","span_id":"a63d9f4ac5921efd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4379,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry data refuse to + go to the pirate party? Because it be already being traced! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nGot + others? \\ud83d\\ude42\\n\\nIn \"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762767138271,"trace_id":"aa2dc9f6daf4f681c1fbea2fbd48ab3e","span_id":"8bdcd39d7563ae91","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3785,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry framework go to + therapy, ye ask?\\n\\nBecause it couldn''t handle all the tracin'' and baggage + it was carryin''! Arrr!\\n\\n \\ud83d\\ude09\\ud83c\\udfa9\\n\\nMaybe if you + were to request it via an RFC,\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762767120937,"trace_id":"39051439cea065e1518f501c5bf5b0df","span_id":"2700b97e5faca561","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5201,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, matey! Why did the Opentelemetry scallywag + part ways with their debugger? Because they couldn''t handle the trace! Arrr!\\n\\n + Yarrrr! Argh! Those are a few relevant signature ideas.\\n\\n\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762767107353,"trace_id":"5a5fd7ee5f9df6ea60491e21b62302bc","span_id":"a8471585a0de02f9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4265,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler part + ways with their mate? Because they couldn''t bear the weight of all the loot + they were lugging around! Arrr!\\n\\n What do you call a fedex driver''s contraband? + What do you\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762767095084,"trace_id":"b2a9e9d6b4a0186bb30ea639cdfbd4fa","span_id":"be5e5278842898d3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3969,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + opentelemetry? Because it couldn''t bear their heavy plunder! Arrr!\\n\\n + { \\\"props\\\": {\\n\\n\\\"name\\\": \\\"sawson\\\", \\\"context\\\": {\\n\\n\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762767080930,"trace_id":"42524bbe9ce55e2f0b8a340b92dd8bfe","span_id":"0e190235323adc2b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + Opentelemetry? Because it was just too clingy and always wanted to trace their + every move, arrr!\\n\\n (random number generator)\\n\\nAhoy argh matey! (random + number generator\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762767067940,"trace_id":"ea3682f636493706cb76833038f20222","span_id":"efc060486cdd2282","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3657,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag get lost in the woods + using opentelemetry? Because they kept tracing their steps, arrr!\\n\\n \\u26f5\\ufe0f\\n\\nFun + facts\\n\\nOP5 was the OP8 of the\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762767053756,"trace_id":"a650f773584d08fb3407a34f80e0fe4d","span_id":"4e9282ee9b5c6a90","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4533,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developers go to + therapy? Because they couldn''t be replacin'' their problems back to the source, + matey! Arrrgh!\\n\\n newton I just finished coding my annual MVP award submission + for work. Can anyone\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762767036582,"trace_id":"dfe853ff8020edf5a8376ad535b6338d","span_id":"a423708403cc9931","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6587,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer break up with + OpenTelemetry? ''Cause it just couldn''t commit to a stable matey-ship! Arrr!\\n\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762767025184,"trace_id":"958b28157347a1a3270a113bbc9a39b6","span_id":"7c2f378b748c9777","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5910,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with its lass? Because it couldn''t handle all the booty she was hoarding! + Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762767015388,"trace_id":"acd3840bb089cf42d9a79e1f30035502","span_id":"7403b41bdce4bc26","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3155,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + Opentelemetry? \\n\\nBecause it couldn''t handle their booty!\\n\\n \\n^(*This + joke even scans well with the gender of the joke-teller\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762767003971,"trace_id":"78a9299d29178336277ce6bcb67a5ddf","span_id":"001a3214635e9fb1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5009,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + \\n\\nBecause they kept losing their traces! Arrrr!\\n\\n\\nMockingJNotable: + Why did the bush of opentracing bear\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762766979117,"trace_id":"9002b67b15f0e3797a56caa8f16722ab","span_id":"6799dbbd52730301","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":15098,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr matey, why did the data center be breakin'' + up with Opentelemetry? ''Cause it couldn''t handle all the baggage it be bringin'' + along!\\n\\n\"","total_tokens":506,"span_count":34},{"environment":"prd","timestamp":1762766964773,"trace_id":"5e3c7805592eb4131fa9ca541199e18e","span_id":"3ef079d3a21c1be6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4063,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library maroon + the codebase? Because it couldn''t handle its plunder! Arrr!\\n\\n Okay, okay, + my jokes are embarrassingly dumb. ;-)\\n\\nAlas,\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762766955127,"trace_id":"9ff9f89ae76890d1794c359b04916d58","span_id":"1f0a59bde66a6bda","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2845,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry pirate go broke?\\n\\nBecause + they were always charting their doubloons!\\n\\n Takes a second to commit + but once you''ve got a sustainable funding model, you\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762766944011,"trace_id":"57f552e5018b977b41732e082aba1470","span_id":"16dba6737cd3f81b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3780,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle the weight of all that + tracing and monitoring in their treasure chest! Arrr!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762766932915,"trace_id":"da9521faf73d0c23f335c68bb6725551","span_id":"caca4c21faa4a11f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke?\\n\\nBecause + he was always spending all his traces! Arrr!\\n\\n Aye!\\n\\nI try, at least!\\n\\nHonOURABLE + MENTION\\n\\nLastly\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766921046,"trace_id":"22cbcb5b40a8eecfefe157097c3aa6af","span_id":"413b88f507cdcd3c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4870,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag go to the tavern? Because + they couldn''t stop charting their problems with OpenTelemetry! Arrr!\\n\\n + I see your anchor you lead netwurker. I opt to opt for\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766908285,"trace_id":"09b6318b8bc2578fd82ea7ec6b90a9f5","span_id":"71a5854cafe678bd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2974,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler part + ways with their matey? Because they be wearied of always being tracked back + to their booty! Arrr!\\n\\n submitted by /u/coloquadrilla [link] [comments]\\n\\nCopy\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766897343,"trace_id":"3160c88d93e682f951cd87e4c34e937f","span_id":"0aaeafe9145c2882","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4074,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry scallywag + run out of doubloons? Because he be losin'' his traces at sea!\\n\\n Arrr! + \\n\\nA more risque joke:\\n\\nArrr, do you have\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762766885715,"trace_id":"322dadae4996655f91abfae91e18d2ad","span_id":"b023c24362d15498","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3387,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag split ways with Opentelemetry?\\n\\n''Cause + it was forever tryin'' t'' trace their every move! Arrr!\\n\\n Now that''s + a good joke.\\n\\n[Image] [Defining CNI](\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766874913,"trace_id":"eb1145bf197d2a24246db39ec60d0987","span_id":"4acf30ee78f0c6ef","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4085,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag switch to usin'' Opentelemetry? + \\n\\nBecause it be the only thin'' that could trace his rotten code!\\n\\n + \\n\\nWo ho ho!\\n \\n\\noriginal comment by iainc on 2021\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762766863851,"trace_id":"cdfe9fe01d2639bb950bb2efe86b5e5a","span_id":"03d583dc52b1fded","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3902,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a spyglass to + work with Opentelemetry? To help him spy all the tiny bugs! Arrr!\\n\\n \\n\\nBy + standardizing the definition of requests, spans, traces, and metrics in\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766847062,"trace_id":"4f3bd9f0f658e5a6e3000b6e48dac967","span_id":"4a4ac677e902b250","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5810,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy programmer bring a map + to the Opentelemetry conference? Because they heard they be tracing some serious + paths! Arrr!\\n\\n...\\n\\nRead More\\n\\nEver keen to fling yourself into + the vast embrace of monitoring\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766836090,"trace_id":"3d8f0808433b5d4eb5cad25e06f35645","span_id":"8807e3a770b70f09","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3465,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag sever ties with Opentelemetry? + ''Cause it couldn''t bear their plunder! Arrr!\\n\\n \\ud83d\\ude0e\\n\\nThis + is all for jelious!\\n\\nI still need to talk to\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766825982,"trace_id":"29bbc06aee05d1a3cb85f9e177d58d45","span_id":"e71f00df5c8c60ab","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4796,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with their + wench? Because she couldn''t handle all the plunder they were carrying! Arrr!\\n\\n + Why did Opentelemetry break up with their wench? Because she couldn''t\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766814928,"trace_id":"0392f2c1e8742ec8d9a00531b5e78ab1","span_id":"8fe91c1d8dea5ca6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4386,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did Opentelemetry break up wit'' + its lass? Because it couldn''t handle all the booty she be carryin'' around! + Arrrrr!\\n\\n M''lady! I know arrrr ticket to your heart!\\n\\nAhoy,\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762766799080,"trace_id":"8e1a287af097dafef65ca6e081a1ca33","span_id":"ec75cc01f4bd09d4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5810,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry data decide to + become a stand-up buccaneer? Because it always knows how to sail a good line! + Arrr!\\n\\n - The Edge confusionism\\n\\nInsert funny reaction\\n\\nCreate + your own thread! !\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766787717,"trace_id":"771a95352d415f2d6312356d8c21a837","span_id":"bf9960ce30b6178e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4735,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with its wench? + Because it couldn''t handle her loot!\\n\\n \\ud83e\\udd23\\n\\nvar B = function() + {\\r\\n const exampleSchema = new\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762766775995,"trace_id":"2dd7c823137d21968cc0b63235a0ff5c","span_id":"82427d50e2dcf773","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4215,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry cut ties with its reckonin'' + device?\\n\\n''Twas no match for its convoluted data! Arrr!\\n\\n Happy logging.\\n\\nAlex + Shaposhnik\\nPrincipal Architect \\nMore posts https://\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762766763696,"trace_id":"f031ce9ce76def6cb74a7d07ef051845","span_id":"d198a37524102fe3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4492,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they kept losing their treasure maps!\\n\\n \\\\*drumroll \\\\* :smoke\\\\_bunny: \\n(R\"","total_tokens":406,"span_count":34},{"environment":"prd","timestamp":1762766747529,"trace_id":"41c1eb7b3be668329e7291e81e6808b5","span_id":"f098c32ae2ea4524","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7563,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + Opentelemetry? ''Twas too much baggage for their partnership to sail smoothly! + Arrr!\\n\\n \\ud83d\\ude02\\n\\nIf you''re looking to quickly create lightweight + HTTP microservices running on\"","total_tokens":490,"span_count":34},{"environment":"prd","timestamp":1762766737392,"trace_id":"bccc0e8c277d7c9e03afecc614105871","span_id":"a5c2af467c4b719c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4149,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be it that the opentelemetry swashbuckler + be partin'' ways with their matey? ''Cause they couldn''t be handlin'' the + trace! Arrr!\\n\\n\"","total_tokens":500,"span_count":34},{"environment":"prd","timestamp":1762766705307,"trace_id":"e0924c37705793a9f874bb6929d2e864","span_id":"c6d683ce74db7d19","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3115,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the opentelemetry scallywag + always calm? Because they could always be tracin'' their steps!\\n\\n (via + Anosmuous)\\n\\nBoth responses to the parody go on to push\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766693313,"trace_id":"6e7d4260b7f00352c5d9cd9eba7ba8dc","span_id":"55d13deaef1ea222","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3979,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag quit using Opentelemetry? + Because it couldn''t handle the stress of always tracking their every move, + arrr!\\n\\n But that prompted inquiries into what really happened, and the + organization had apparently reached a\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766683583,"trace_id":"a805f24dff33eec339fc8979340d9055","span_id":"df91345c1491cb90","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3704,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry swashbuckler part + ways with their calculating contraption? ''Twas no match for their twisted + reckonings! Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762766672584,"trace_id":"e7f9ad3ed53cd935d1228f5fab906982","span_id":"19b4ac5fbbbea5a2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3265,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywags part + ways with the tracing library?\\n\\nBecause it couldn''t handle all the plunder! + Arrr!\\n\\n #opentelemetry\\n\\n\\ud83c\\udfb6 I''m just a poor moose,\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766659833,"trace_id":"107341e233cac60d8e5f0e11ba2ec8bf","span_id":"db28591f66144eae","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4128,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy software engineer bring + a spyglass to view Opentelemetry logs? Because they be wantin'' to see the + trace in \\\"full detail\\\"! Arrr!\\n\\n ARRRRRRR!\\n\\nThe other day I decided + to go back and re-engine\"","total_tokens":592,"span_count":34},{"environment":"prd","timestamp":1762766647952,"trace_id":"0e9ebe182023e619abd2341b5a6e2d58","span_id":"55736856c5bea6a5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3918,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler run + out of doubloons?\\n\\nBecause they be endlessly pathin'' their loot! Arrr!\\n\\n + Phenomenal Patido Patch!\\ufeff\\n\\n(edit) This is the only microp\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766638743,"trace_id":"ac1615d8995f15cc721468463528feff","span_id":"478eeec92d167ade","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3099,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye scallywag break up with Opentelemetry? + Because it couldn''t handle their loot! Arrr!\\n\\n #opentelemetry pic.twitter.com/OomIjf1xYa\\n\\n\\u2014\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766618305,"trace_id":"cb6895054d2b8203173b11e84dade34d","span_id":"70484c211bb83b68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":13491,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry scallywag + go broke? \\n\\nBecause they be sailin'' the high seas tryin'' to trace their + doubloons but always endin'' up with a NullPointerException!\\n\\n \\n\\nFor + more available jokes, use jokes.distillery:compine with the predefined\"","total_tokens":610,"span_count":34},{"environment":"prd","timestamp":1762766607064,"trace_id":"a585d1cbef71724245f30ff77b49bf0b","span_id":"01ff2ee4a6b05fb0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4521,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry tool break up with + the tracing software? Because it couldn''t handle all the booty it was carryin''! + Arrr!\\n\\n Argh! More\\nWhen you have muddynotebook, badabit\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762766589487,"trace_id":"23c665692bb0b524db2c8a5b04accb24","span_id":"110518ef137c51f8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4270,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they couldn''t track their doubloons! Arrr!\\n\\n \\\\_ Ok that cracked + me up.\\n\\nTrue story: I got hit on by\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766579148,"trace_id":"ed12d8fd3ee82c819864964679b85f08","span_id":"5be30cdff52d698d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4328,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask?\\n\\nBecause every time they tried to trace their doubloons, it resulted + in a never-ending loop! Arrr!\\n\\n I shall be in my little cave!\\n\\nWorst + Joke Ever? was originally\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762766546086,"trace_id":"93a1d5347329202243e31b4348c1f3cd","span_id":"c64f21fc259cac14","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":24215,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler bring + aboard a ladder?\\nBecause they be told they needed to trace all the steps + in their code, arrr!\\n\\n \\nAlso, why is an Airship named Huckabee? It''s + how many\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766527868,"trace_id":"3f7faad05a9b2527a213a4aafcff7caf","span_id":"540205bd7dad5118","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7740,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did th'' Opentelemetry plunderer bring + a cutlass t'' th'' software conference? \\nT'' sketch out th'' perfect tracin'' + path!\\n\\n (REI)\\n\\nWhy aren''t Oracle''s products conforming to spec? + \\n\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762766514275,"trace_id":"923966753adad02d97cd33c65797a694","span_id":"ddcc6392527e9810","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4247,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry matey go bankrupt?\\n\\nBecause + they be adding tracers left and right, but couldn''t follow any of the trails! + Arrr!\\n\\n\"","total_tokens":500,"span_count":34},{"environment":"prd","timestamp":1762766501105,"trace_id":"6bdd12fba84018d8b7b95ac05ed1ad85","span_id":"7d9b6b4f9e71d769","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6125,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry API go to therapy? + Because it had some serious plunderin'' issues! Arrr!\\n\\n \\n\\nJoin our + worldwide community of Adopters as they break new ground, building monitoring\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762766488354,"trace_id":"a0ccabc30f2092d584cedddc5ee16f00","span_id":"a508717a2efd6686","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3394,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag bring + a plank to the code inspection? \\n\\nTo aid in tracking and spanning the + potential barnacles!\\n\\n \\n \\n \\n\\n---\\n\\nSee and reply to @kestrelci''s + tweets\\n\\nCall\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762766472432,"trace_id":"5fba798ba3ae636db35217a136701330","span_id":"69995cb3bcd9560d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6064,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the buccaneer opentelemetry developer + go broke?\\nBecause he couldn''t spy his plunderin''! Arrr!\\n\\n8\u003e\\n\\n---\\nJoel + Kallman\\nChair, OpenCensus \u0026 Open\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766462109,"trace_id":"44fac01d2202b12bd5c57ab8481e0a08","span_id":"3a0266e15ded9306","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4346,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler bring + a spyglass to work? To ensure their trails be crystal clear! Arrr!\\n\\n Instead + of \\u201c swashbuckler\\u201d you can replace with \\u201cpirate\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766451143,"trace_id":"2ecb96582de209c84a01223282c5ef39","span_id":"1c3dfa1ee470cbc7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4106,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer break + up with their significant other? Because they couldn''t map a course for their + relationship! Arrr!\\n\\n @Weaver\\n\\nsymengine\\n\\nOne of the reasons I + don''t use Swift\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766438503,"trace_id":"b2669e723e000377b165558e38b6b370","span_id":"bc13059e2a3eac4e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4420,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry pirate go plundered + at the comedy ship? Because they couldn''t track where all the laughs were + coming from, arrr!\\n\\n This is what the Jokes page is about. We record our + expansion programming in\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766426947,"trace_id":"22a502e3ba4640cb8550bd24d59112aa","span_id":"535e9061c57475c2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4001,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it couldn''t handle their cargo! Arrr!\\n\\nSubscribe here for more + new videos every week. You may like these other hilarious stuff\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766409974,"trace_id":"ff512075a1dc7f8db109f3c460d4924c","span_id":"4d6548183f859bb6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6173,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scalawag bring a compass to work + with Opentelemetry? Because they didn''t want to get lost in all the trace + data, arrr!\\n\\n (I realize pirates aren''t medieval, but it''s good to add + a bit\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766397458,"trace_id":"83a9b1f537bd824286ba572a0ccb54c8","span_id":"472c986da9c3d80d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3842,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog go bankrupt trying + to implement Opentelemetry? Because whenever they tried to trace their treasure, + the tracing just kept looping back on itself! Arrrrr!\\n\\n What did the jester + write for ur warning on NLTM to warn freelance gr\"","total_tokens":598,"span_count":34},{"environment":"prd","timestamp":1762766386607,"trace_id":"e110b2c3688c31b85b38a1c5ccc952ae","span_id":"b8b297a14b09c2a3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3979,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with its mate? Because it couldn''t handle the booty of all that tracing! + Arrr!\\n\\n \\ud83d\\udc27\\n\\nAll kidding aside, the joke isn''t as funny + without it\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766375242,"trace_id":"54c41c0f29e39655e10472914fb897b0","span_id":"acf148ee35b14ec3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4060,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy opentelemetry scallywag + go broke? Because they kept trying to trace their doubloons! Arrr!\\n\\n\"","total_tokens":440,"span_count":34},{"environment":"prd","timestamp":1762766361069,"trace_id":"ff9954a1a436c4660e1fcf19a3c2895a","span_id":"4c98de470c673f60","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4730,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Cause it couldn''t keep up with its tracing! Arrrrr!\\n\\n \\ud83c\\udfa3 + New features coming to Jaeger When scheduling tests, there was no\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766348962,"trace_id":"36f8170538635117592d8b591f42481c","span_id":"d59e908a6bef9ec8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3513,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry keelhaul its ex? Because + it couldn''t chart the relationship!\\n\\n https://vanberchammer.com/2021/03/23/opente\"","total_tokens":406,"span_count":34},{"environment":"prd","timestamp":1762766335936,"trace_id":"4c298761c5f0187152fe859644574096","span_id":"6bb5a767b367110f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3670,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask?\\n\\nBecause they were always tracing their doubloons! Arrr!\\n\\n + \\ud83d\\ude2c\\n\\nsigned,\\n\\nBeat OPTLANG +OPTINSTRUME +OPTMET\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766320329,"trace_id":"351f98125fee646fc59789c0b80b05f9","span_id":"e5cc6c8fd8b72ce2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6183,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke? + \\n\\nBecause they couldn''t spy on their own plunder!\\n\\n\\nCustomMmmMiracle: + This is the level I''m at as well\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766307801,"trace_id":"47621a53bf4623cbca68665f0d843c8c","span_id":"90b4d1a01a4ad06e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5099,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry?\\nBecause + it couldn''t handle the weight of tracking all their troubles! Arrr!\\n\\n + \\n\\nIn all seriouness, clear tracing doesn''t write traces over a period\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766297177,"trace_id":"5798f0bb031aab66432ef7f512853d89","span_id":"3d60851b0d953096","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5111,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the openlemetry shipmate go broke? + \\n\\nBecause they kept followin'' their expenses! Arrr!\\n\\n \\n\"","total_tokens":394,"span_count":34},{"environment":"prd","timestamp":1762766284527,"trace_id":"e5d337b3a16dd632065d9ea855a6b452","span_id":"d777f80d717e728f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4097,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bust? + \\nBecause he spent all his doubloons trying to trace his footsteps!\\n\\n\"","total_tokens":452,"span_count":34},{"environment":"prd","timestamp":1762766262278,"trace_id":"74ea2f500d05dca368bb59903ff89236","span_id":"283e20390a2922d0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler part ways with Opentelemetry? + ''Twas unable to follow their relationship back to the source! Arrr!\\n\\n + Here''s blat :-):\\n\\npublic static void main(String[] args) {\\n Thread\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766243903,"trace_id":"1816fe48cfcc54caa6752d99b640485f","span_id":"6fa6cb2a265c0c29","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":9749,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry programmer go broke, + ye ask? \\n\\n''Cause he couldn''t spy any traces of doubloons! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nMeme aside, I am actually\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766233100,"trace_id":"d78b9c78ef148d108a5682778971a8bf","span_id":"b779a9f4eada13ac","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4944,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry library break + up with its wench? Because it couldn''t handle the cargo \\ud83e\\udd23\\n\\n\\ud83e\\udd23\\ud83e\\udd23\\n\\n\\\"the + library couldn''t handle the cargo\\\"\\n\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766220613,"trace_id":"3bb3d585d762d480371f1035381e4f1d","span_id":"52e075c5aa9df237","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5807,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask? Because every time they tried to trace their doubloons, it just kept + getting lost in the telemetry data! Arrr!\\n\\n You should have seen it coming + if you were paying any attention!\\n\\nEdit: or\"","total_tokens":592,"span_count":34},{"environment":"prd","timestamp":1762766206999,"trace_id":"bdb9d7c79e1cc807fee4c29f0ade340f","span_id":"bdd63372bfb6c620","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7788,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer break + up with their mate? Because they couldn''t commit to tracing the arrr-relationship! + Arrrgh!\\n\\n\\nDafinityshealthy: It''s a fair point though. XRay\"","total_tokens":514,"span_count":34}],"page_size":248,"total_results":248,"next_cursor":"1762766206999"}}' + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:17 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchSpans.test_search_spans_basic.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchSpans.test_search_spans_basic.yaml new file mode 100644 index 0000000..8c73b0d --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchSpans.test_search_spans_basic.yaml @@ -0,0 +1,1036 @@ +interactions: +- request: + body: '{"filters":[],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":20}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '188' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/spans + response: + body: + string: "{\"spans\":{\"data\":[{\"environment\":\"prd\",\"timestamp\":1763273120050,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"e82e6570ac10b8f6\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"395\",\"llm.usage.prompt_tokens\":\"4354\",\"llm.usage.total_tokens\":\"4749\",\"llm.vendor\":\"openai\"},\"duration\":8358,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.10.content\":\"status='success' + message='Created 7-day itinerary for Brussels' itinerary=TravelItinerary(trip_title='A + Culinary Journey Through Brussels', destination='Brussels', duration_days=7, + total_budget_estimate='\u20AC800', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and Exploring the Historic Center', activities=[DayActivity(time='10:00 + AM', activity='Check into hotel and freshen up.', location=\\\"Hotel Amigo, + Rue de l'Amigo 1-3, 1000 Brussels\\\", notes='Moderate hotel located near + the city center.'), DayActivity(time='11:30 AM', activity='Visit the Grand + Place, UNESCO World Heritage Site.', location='Grand Place, 1000 Brussels', + notes=\\\"Don't miss the stunning architecture and the Town Hall.\\\"), DayActivity(time='1:00 + PM', activity='Lunch at Chez L\xE9on for traditional moules-frites (mussels + and fries).', location='Rue des Bouchers 18, 1000 Brussels', notes='A famous + spot for seafood lovers.'), DayActivity(time='3:00 PM', activity='Explore + the Manneken Pis statue and its surrounding area.', location=\\\"Rue de l'\xC9tuve + 46, 1000 Brussels\\\", notes='A quirky symbol of Brussels.'), DayActivity(time='5:00 + PM', activity='Enjoy a chocolate tasting at Chocopolis.', location='Rue de + la Presse 8, 1000 Brussels', notes='Sample some of the best Belgian chocolates.')], + meals=['Lunch at Chez L\xE9on', 'Dinner at Le Pain Quotidien, organic fare'], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=2, + date='2023-10-02', title='Art \\u0026 Culture Day', activities=[DayActivity(time='9:00 + AM', activity='Visit the Royal Palace of Brussels.', location='Place des Palais, + 1000 Brussels', notes='Check the opening hours as they can vary.'), DayActivity(time='11:00 + AM', activity='Tour the Magritte Museum.', location='Rue de la R\xE9gence + 3, 1000 Brussels', notes='Features works by surrealist artist Ren\xE9 Magritte.'), + DayActivity(time='1:00 PM', activity='Lunch at Caf\xE9 des Halles for local + Belgian dishes.', location='Place de la Bourse 2, 1000 Brussels', notes='A + lovely caf\xE9 with a cozy atmosphere.'), DayActivity(time='3:00 PM', activity='Stroll + through the Parc du Cinquantenaire.', location='Parc du Cinquantenaire, 1000 + Brussels', notes='Enjoy the beautiful gardens and archway.'), DayActivity(time='5:00 + PM', activity='Visit the European Parliament.', location='Rue Wiertz 60, 1047 + Brussels', notes='Free entry, but check for available tours.')], meals=['Lunch + at Caf\xE9 des Halles', \\\"Dinner at Restaurant de l'Hotel de Ville, regional + specialties\\\"], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"), DayPlan(day_number=3, date='2023-10-03', title='Belgian Beer + and Waffles', activities=[DayActivity(time='10:00 AM', activity='Join a beer + tasting tour.', location='Brussels Beer Project, Rue Antoine Dansaert 188, + 1000 Brussels', notes='Sample different Belgian beers.'), DayActivity(time='12:00 + PM', activity='Lunch at Delirium Caf\xE9 for a vast beer selection.', location='Impasse + de la Fid\xE9lit\xE9 4, 1000 Brussels', notes='Try their famous beer menu.'), + DayActivity(time='2:00 PM', activity='Visit the Belgian Comic Strip Center.', + location='Rue des Sables 20, 1000 Brussels', notes=\\\"A fun take on Belgium's + comic strip history.\\\"), DayActivity(time='4:00 PM', activity='Indulge in + Belgian waffles at Maison Dandoy.', location='Rue Charles Buls 14, 1000 Brussels', + notes='Known for their delicious Li\xE8ge waffles.'), DayActivity(time='6:00 + PM', activity='Explore the local shops in the Sablon district.', location='Sablon, + 1000 Brussels', notes='A chic area with antique shops and chocolatiers.')], + meals=['Lunch at Delirium Caf\xE9', 'Dinner at Chez L\xE9on (again, for the + moules-frites)'], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"), DayPlan(day_number=4, date='2023-10-04', title='Day Trip to + Ghent', activities=[DayActivity(time='9:00 AM', activity='Take a train to + Ghent.', location='Brussels Central Station', notes='Trains run frequently; + buy tickets at the station.'), DayActivity(time='10:00 AM', activity='Visit + Gravensteen Castle.', location='Sint-Veerleplein 11, 9000 Ghent', notes='Explore + the medieval castle.'), DayActivity(time='12:00 PM', activity='Lunch at De + Graslei, riverside dining.', location='Graslei 7, 9000 Ghent', notes='Enjoy + local dishes with a view.'), DayActivity(time='2:00 PM', activity=\\\"Stroll + through the historic center and visit St. Bavo's Cathedral.\\\", location='Sint-Baafsplein + 1, 9000 Ghent', notes='Home of the famous Ghent Altarpiece.'), DayActivity(time='4:00 + PM', activity='Try local beer at a Ghent brewery.', location='Brouwerij Gruut, + 9000 Ghent', notes='Unique brewery with its own beer style.'), DayActivity(time='6:00 + PM', activity='Return to Brussels.', location='Brussels Central Station', + notes='Trains run until late.')], meals=['Lunch at De Graslei', 'Dinner at + Le Pain Quotidien (again for delicious organic options)'], accommodation=\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=5, date='2023-10-05', + title='Markets and Local Flavors', activities=[DayActivity(time='9:00 AM', + activity='Visit the Midi Market (open on Thursdays).', location='Place du + Midi, 1060 Brussels', notes='A vibrant market with local produce and street + food.'), DayActivity(time='11:00 AM', activity='Try various cheese samples + at Fromagerie de la Place.', location='Place du Ch\xE2telain, 1050 Brussels', + notes='A delightful cheese shop.'), DayActivity(time='1:00 PM', activity='Lunch + at Les Brigittines, local cuisine.', location='Place de la Chapelle 5, 1000 + Brussels', notes='Known for hearty Belgian dishes.'), DayActivity(time='3:00 + PM', activity='Explore the Marolles district and its vintage shops.', location='Marolles, + 1000 Brussels', notes='Great for thrift shopping and unique finds.'), DayActivity(time='5:00 + PM', activity='Enjoy a beer at a local tavern, Caf\xE9 Belga.', location='Place + Eug\xE8ne Flagey, 1050 Brussels', notes='A lively spot to unwind.')], meals=['Lunch + at Les Brigittines', 'Dinner at Chez L\xE9on (to try other menu items)'], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=6, + date='2023-10-06', title='Culinary Delights', activities=[DayActivity(time='10:00 + AM', activity='Take a cooking class to learn Belgian cuisine.', location='Brussels + Cooking Classes, Rue des Bouchers 9, 1000 Brussels', notes='Pre-booking is + recommended.'), DayActivity(time='1:00 PM', activity=\\\"Enjoy the meal you've + prepared during the class.\\\", location='Brussels Cooking Classes', notes='A + unique lunch experience.'), DayActivity(time='3:00 PM', activity='Visit the + Atomium, an iconic building.', location=\\\"Avenue de l'Atomium, 1020 Brussels\\\", + notes='Check out the exhibition inside.'), DayActivity(time='5:00 PM', activity='Explore + Mini-Europe, right next to Atomium.', location='Bruparck, 1020 Brussels', + notes='A miniature park with famous European landmarks.')], meals=['Lunch + at cooking class', \\\"Dinner at La Roue d'Or, known for local favorites\\\"], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=7, + date='2023-10-07', title='Departure Day', activities=[DayActivity(time='9:00 + AM', activity='Last-minute shopping in the Galeries Royales Saint-Hubert.', + location='Galeries Royales Saint-Hubert, 1000 Brussels', notes='Beautiful + shopping arcade.'), DayActivity(time='11:00 AM', activity='Visit the Royal + Museums of Fine Arts of Belgium.', location='Rue de la R\xE9gence 3, 1000 + Brussels', notes='Explore the vast collection of art.'), DayActivity(time='1:00 + PM', activity='Lunch at Le Pain Quotidien, a final taste of organic dishes.', + location='Multiple locations', notes='Great ambiance for your last meal.'), + DayActivity(time='3:00 PM', activity='Check out from hotel and head to the + airport.', location=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\", + notes='Plan for travel time to airport.')], meals=['Lunch at Le Pain Quotidien', + 'Dinner on the flight'], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, + 1000 Brussels\\\")], travel_tips=['Purchase a Brussels Card for discounts + on entrance fees and public transport.', \\\"Always try to learn a few basic + French or Flemish phrases, it's appreciated by locals.\\\", 'Keep an umbrella + or raincoat handy due to unpredictable weather.'], packing_suggestions=['Comfortable + walking shoes for exploring the city.', 'Layers to adjust to changing temperatures + throughout the day.', 'A light waterproof jacket or umbrella for occasional + rain.'])\",\"llm.prompts.10.role\":\"tool\",\"llm.prompts.10.tool_call_id\":\"call_eSompCv9cwfQozN9rREMSvt1\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696ed14081968f4ffc1c02b6bb46\",\"llm.prompts.7.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.8.content\":\"status='success' + message='Retrieved information for Brussels' info=DestinationInfo(title='Brussels', + summary='Federal region of Belgium including the capital', extract='Brussels, + officially the Brussels-Capital Region, is a region of Belgium comprising + 19 municipalities, including the City of Brussels, which is the capital of + Belgium. The Brussels-Capital Region is located in the central portion of + the country. It is a part of both the French Community of Belgium and the + Flemish Community, and is separate from the Flemish Region (Flanders), within + which it forms an enclave, and the Walloon Region (Wallonia), located less + than 4 kilometres (2.5\\\\xa0mi) to the south.')\",\"llm.prompts.8.role\":\"tool\",\"llm.prompts.8.tool_call_id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\",\"llm.prompts.9.role\":\"assistant\",\"llm.prompts.9.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"food\\\",\\\"weather_info\\\":\\\"Current + temperature is 10.6\xB0C with overcast conditions. The forecast for the week + includes temperatures ranging from 12.8\xB0C to 4.1\xB0C, with occasional + rain.\\\",\\\"destination_details\\\":\\\"Brussels, the capital of Belgium, + is a vibrant city known for its eclectic mix of French and Flemish culture. + The city is famous for its rich history, stunning architecture, and a gastronomic + scene that includes Belgian waffles, chocolates, and a variety of local beers.\\\"}\",\"llm.prompts.9.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919697293788196b01dbbc9dc5fd320\",\"llm.prompts.9.tool_calls.0.name\":\"create_itinerary\"},\"completions\":{\"llm.completions.0.content\":\"I've + created a 7-day itinerary for a culinary adventure in Brussels, Belgium, perfect + for couples:\\n\\n### Trip Title: A Culinary Journey Through Brussels\\n\\n**Day + 1: Arrival and Exploring the Historic Center**\\n- **Stay**: Hotel Amigo\\n- + **Activities**: \\n - Visit the Grand Place\\n - Enjoy lunch at Chez L\xE9on + for moules-frites\\n - Explore the Manneken Pis and Chocopolis for a chocolate + tasting\\n- **Weather**: Overcast, 10.6\xB0C\\n\\n**Day 2: Art \\u0026 Culture + Day**\\n- **Activities**: \\n - Royal Palace of Brussels\\n - Magritte Museum\\n + \ - Parc du Cinquantenaire\\n - European Parliament tour\\n\\n**Day 3: Belgian + Beer and Waffles**\\n- **Activities**:\\n - Beer tasting tour at Brussels + Beer Project\\n - Comic Strip Center\\n - Belgian waffles at Maison Dandoy\\n + \ - Shopping in Sablon district\\n\\n**Day 4: Day Trip to Ghent**\\n- **Activities**:\\n + \ - Train to Ghent\\n - Gravensteen Castle\\n - St. Bavo's Cathedral\\n + \ - Brewery visit\\n\\n**Day 5: Markets and Local Flavors**\\n- **Activities**:\\n + \ - Midi Market visit\\n - Cheese sampling at Fromagerie de la Place\\n - + Explore Marolles district\\n\\n**Day 6: Culinary Delights**\\n- **Activities**:\\n + \ - Cooking class\\n - Visit the Atomium and Mini-Europe\\n\\n**Day 7: Departure + Day**\\n- **Activities**:\\n - Shopping at Galeries Royales Saint-Hubert\\n + \ - Royal Museums of Fine Arts\\n\\n**Travel Tips**: \\n- Purchase a Brussels + Card for discounts.\\n- Pack layers and a waterproof jacket for the weather.\\n\\n**Budget + Estimate**: \u20AC800\\n\\nEnjoy your delicious and romantic European escape + in Brussels!\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273077046,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"01e55a77b2a2dce0\",\"parent_span_id\":\"8f466a6f6bb9d33b\",\"trace_state\":\"\",\"span_name\":\"openai.chat\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai.v1\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.headers\":\"None\",\"llm.is_streaming\":\"false\",\"llm.openai.api_base\":\"https://api.openai.com/v1/\",\"llm.openai.system_fingerprint\":\"fp_51db84afab\",\"llm.request.max_tokens\":\"3000\",\"llm.request.model\":\"gpt-4o-mini\",\"llm.request.structured_output_schema\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\",\"llm.request.temperature\":\"0.700000\",\"llm.request.type\":\"chat\",\"llm.response.id\":\"chatcmpl-CcQAIZ9vs66Ad2yBRePDGlr93GdfC\",\"llm.response.model\":\"gpt-4o-mini-2024-07-18\",\"llm.usage.cache_read_input_tokens\":\"0\",\"llm.usage.completion_tokens\":\"2078\",\"llm.usage.prompt_tokens\":\"579\",\"llm.usage.reasoning_tokens\":\"0\",\"llm.usage.total_tokens\":\"2657\",\"llm.vendor\":\"openai\"},\"duration\":43000,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"You + are an expert travel planner who creates detailed, practical itineraries.\",\"llm.prompts.0.role\":\"system\",\"llm.prompts.1.content\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Brussels.\\n\\nTrip + Details:\\n- Destination: Brussels\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: food\\n- Weather: Current temperature is 10.6\xB0C with overcast + conditions. The forecast for the week includes temperatures ranging from 12.8\xB0C + to 4.1\xB0C, with occasional rain.\\n- Destination Info: Brussels, the capital + of Belgium, is a vibrant city known for its eclectic mix of French and Flemish + culture. The city is famous for its rich history, stunning architecture, and + a gastronomic scene that includes Belgian waffles, chocolates, and a variety + of local beers.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and food interests.\\nEach day should have 3-5 activities + with specific times, locations, and helpful notes.\\n\",\"llm.prompts.1.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"{\\\"trip_title\\\":\\\"A + Culinary Journey Through Brussels\\\",\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC800\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Exploring the Historic Center\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 + AM\\\",\\\"activity\\\":\\\"Check into hotel and freshen up.\\\",\\\"location\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\",\\\"notes\\\":\\\"Moderate hotel + located near the city center.\\\"},{\\\"time\\\":\\\"11:30 AM\\\",\\\"activity\\\":\\\"Visit + the Grand Place, UNESCO World Heritage Site.\\\",\\\"location\\\":\\\"Grand + Place, 1000 Brussels\\\",\\\"notes\\\":\\\"Don't miss the stunning architecture + and the Town Hall.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Chez L\xE9on for traditional moules-frites (mussels and fries).\\\",\\\"location\\\":\\\"Rue + des Bouchers 18, 1000 Brussels\\\",\\\"notes\\\":\\\"A famous spot for seafood + lovers.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Explore the + Manneken Pis statue and its surrounding area.\\\",\\\"location\\\":\\\"Rue + de l'\xC9tuve 46, 1000 Brussels\\\",\\\"notes\\\":\\\"A quirky symbol of Brussels.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a chocolate tasting at Chocopolis.\\\",\\\"location\\\":\\\"Rue + de la Presse 8, 1000 Brussels\\\",\\\"notes\\\":\\\"Sample some of the best + Belgian chocolates.\\\"}],\\\"meals\\\":[\\\"Lunch at Chez L\xE9on\\\",\\\"Dinner + at Le Pain Quotidien, organic fare\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, + Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Art + \\u0026 Culture Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Visit + the Royal Palace of Brussels.\\\",\\\"location\\\":\\\"Place des Palais, 1000 + Brussels\\\",\\\"notes\\\":\\\"Check the opening hours as they can vary.\\\"},{\\\"time\\\":\\\"11:00 + AM\\\",\\\"activity\\\":\\\"Tour the Magritte Museum.\\\",\\\"location\\\":\\\"Rue + de la R\xE9gence 3, 1000 Brussels\\\",\\\"notes\\\":\\\"Features works by + surrealist artist Ren\xE9 Magritte.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Caf\xE9 des Halles for local Belgian dishes.\\\",\\\"location\\\":\\\"Place + de la Bourse 2, 1000 Brussels\\\",\\\"notes\\\":\\\"A lovely caf\xE9 with + a cozy atmosphere.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Stroll + through the Parc du Cinquantenaire.\\\",\\\"location\\\":\\\"Parc du Cinquantenaire, + 1000 Brussels\\\",\\\"notes\\\":\\\"Enjoy the beautiful gardens and archway.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Visit the European Parliament.\\\",\\\"location\\\":\\\"Rue + Wiertz 60, 1047 Brussels\\\",\\\"notes\\\":\\\"Free entry, but check for available + tours.\\\"}],\\\"meals\\\":[\\\"Lunch at Caf\xE9 des Halles\\\",\\\"Dinner + at Restaurant de l'Hotel de Ville, regional specialties\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Belgian + Beer and Waffles\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Join + a beer tasting tour.\\\",\\\"location\\\":\\\"Brussels Beer Project, Rue Antoine + Dansaert 188, 1000 Brussels\\\",\\\"notes\\\":\\\"Sample different Belgian + beers.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch at Delirium + Caf\xE9 for a vast beer selection.\\\",\\\"location\\\":\\\"Impasse de la + Fid\xE9lit\xE9 4, 1000 Brussels\\\",\\\"notes\\\":\\\"Try their famous beer + menu.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Visit the Belgian + Comic Strip Center.\\\",\\\"location\\\":\\\"Rue des Sables 20, 1000 Brussels\\\",\\\"notes\\\":\\\"A + fun take on Belgium's comic strip history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Indulge + in Belgian waffles at Maison Dandoy.\\\",\\\"location\\\":\\\"Rue Charles + Buls 14, 1000 Brussels\\\",\\\"notes\\\":\\\"Known for their delicious Li\xE8ge + waffles.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Explore the + local shops in the Sablon district.\\\",\\\"location\\\":\\\"Sablon, 1000 + Brussels\\\",\\\"notes\\\":\\\"A chic area with antique shops and chocolatiers.\\\"}],\\\"meals\\\":[\\\"Lunch + at Delirium Caf\xE9\\\",\\\"Dinner at Chez L\xE9on (again, for the moules-frites)\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":4,\\\"date\\\":\\\"2023-10-04\\\",\\\"title\\\":\\\"Day + Trip to Ghent\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Take + a train to Ghent.\\\",\\\"location\\\":\\\"Brussels Central Station\\\",\\\"notes\\\":\\\"Trains + run frequently; buy tickets at the station.\\\"},{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Visit + Gravensteen Castle.\\\",\\\"location\\\":\\\"Sint-Veerleplein 11, 9000 Ghent\\\",\\\"notes\\\":\\\"Explore + the medieval castle.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at De Graslei, riverside dining.\\\",\\\"location\\\":\\\"Graslei 7, 9000 + Ghent\\\",\\\"notes\\\":\\\"Enjoy local dishes with a view.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Stroll through the historic center and visit St. + Bavo's Cathedral.\\\",\\\"location\\\":\\\"Sint-Baafsplein 1, 9000 Ghent\\\",\\\"notes\\\":\\\"Home + of the famous Ghent Altarpiece.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Try + local beer at a Ghent brewery.\\\",\\\"location\\\":\\\"Brouwerij Gruut, 9000 + Ghent\\\",\\\"notes\\\":\\\"Unique brewery with its own beer style.\\\"},{\\\"time\\\":\\\"6:00 + PM\\\",\\\"activity\\\":\\\"Return to Brussels.\\\",\\\"location\\\":\\\"Brussels + Central Station\\\",\\\"notes\\\":\\\"Trains run until late.\\\"}],\\\"meals\\\":[\\\"Lunch + at De Graslei\\\",\\\"Dinner at Le Pain Quotidien (again for delicious organic + options)\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"},{\\\"day_number\\\":5,\\\"date\\\":\\\"2023-10-05\\\",\\\"title\\\":\\\"Markets + and Local Flavors\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Visit + the Midi Market (open on Thursdays).\\\",\\\"location\\\":\\\"Place du Midi, + 1060 Brussels\\\",\\\"notes\\\":\\\"A vibrant market with local produce and + street food.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Try + various cheese samples at Fromagerie de la Place.\\\",\\\"location\\\":\\\"Place + du Ch\xE2telain, 1050 Brussels\\\",\\\"notes\\\":\\\"A delightful cheese shop.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Les Brigittines, local cuisine.\\\",\\\"location\\\":\\\"Place + de la Chapelle 5, 1000 Brussels\\\",\\\"notes\\\":\\\"Known for hearty Belgian + dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Explore the + Marolles district and its vintage shops.\\\",\\\"location\\\":\\\"Marolles, + 1000 Brussels\\\",\\\"notes\\\":\\\"Great for thrift shopping and unique finds.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a beer at a local tavern, Caf\xE9 Belga.\\\",\\\"location\\\":\\\"Place + Eug\xE8ne Flagey, 1050 Brussels\\\",\\\"notes\\\":\\\"A lively spot to unwind.\\\"}],\\\"meals\\\":[\\\"Lunch + at Les Brigittines\\\",\\\"Dinner at Chez L\xE9on (to try other menu items)\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":6,\\\"date\\\":\\\"2023-10-06\\\",\\\"title\\\":\\\"Culinary + Delights\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Take + a cooking class to learn Belgian cuisine.\\\",\\\"location\\\":\\\"Brussels + Cooking Classes, Rue des Bouchers 9, 1000 Brussels\\\",\\\"notes\\\":\\\"Pre-booking + is recommended.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Enjoy + the meal you've prepared during the class.\\\",\\\"location\\\":\\\"Brussels + Cooking Classes\\\",\\\"notes\\\":\\\"A unique lunch experience.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Visit the Atomium, an iconic building.\\\",\\\"location\\\":\\\"Avenue + de l'Atomium, 1020 Brussels\\\",\\\"notes\\\":\\\"Check out the exhibition + inside.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Explore Mini-Europe, + right next to Atomium.\\\",\\\"location\\\":\\\"Bruparck, 1020 Brussels\\\",\\\"notes\\\":\\\"A + miniature park with famous European landmarks.\\\"}],\\\"meals\\\":[\\\"Lunch + at cooking class\\\",\\\"Dinner at La Roue d'Or, known for local favorites\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":7,\\\"date\\\":\\\"2023-10-07\\\",\\\"title\\\":\\\"Departure + Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Last-minute + shopping in the Galeries Royales Saint-Hubert.\\\",\\\"location\\\":\\\"Galeries + Royales Saint-Hubert, 1000 Brussels\\\",\\\"notes\\\":\\\"Beautiful shopping + arcade.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit the + Royal Museums of Fine Arts of Belgium.\\\",\\\"location\\\":\\\"Rue de la + R\xE9gence 3, 1000 Brussels\\\",\\\"notes\\\":\\\"Explore the vast collection + of art.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch at Le + Pain Quotidien, a final taste of organic dishes.\\\",\\\"location\\\":\\\"Multiple + locations\\\",\\\"notes\\\":\\\"Great ambiance for your last meal.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Check out from hotel and head to the airport.\\\",\\\"location\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\",\\\"notes\\\":\\\"Plan for travel + time to airport.\\\"}],\\\"meals\\\":[\\\"Lunch at Le Pain Quotidien\\\",\\\"Dinner + on the flight\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, Rue de l'Amigo 1-3, + 1000 Brussels\\\"}],\\\"travel_tips\\\":[\\\"Purchase a Brussels Card for + discounts on entrance fees and public transport.\\\",\\\"Always try to learn + a few basic French or Flemish phrases, it's appreciated by locals.\\\",\\\"Keep + an umbrella or raincoat handy due to unpredictable weather.\\\"],\\\"packing_suggestions\\\":[\\\"Comfortable + walking shoes for exploring the city.\\\",\\\"Layers to adjust to changing + temperatures throughout the day.\\\",\\\"A light waterproof jacket or umbrella + for occasional rain.\\\"]}\",\"llm.completions.0.finish_reason\":\"stop\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273076537,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"8f466a6f6bb9d33b\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"create_itinerary.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"create_itinerary\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":43510,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"create_itinerary\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273073000,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"05f6c52415ea7bac\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"132\",\"llm.usage.prompt_tokens\":\"2060\",\"llm.usage.total_tokens\":\"2192\",\"llm.vendor\":\"openai\"},\"duration\":3536,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696ed14081968f4ffc1c02b6bb46\",\"llm.prompts.7.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.8.content\":\"status='success' + message='Retrieved information for Brussels' info=DestinationInfo(title='Brussels', + summary='Federal region of Belgium including the capital', extract='Brussels, + officially the Brussels-Capital Region, is a region of Belgium comprising + 19 municipalities, including the City of Brussels, which is the capital of + Belgium. The Brussels-Capital Region is located in the central portion of + the country. It is a part of both the French Community of Belgium and the + Flemish Community, and is separate from the Flemish Region (Flanders), within + which it forms an enclave, and the Walloon Region (Wallonia), located less + than 4 kilometres (2.5\\\\xa0mi) to the south.')\",\"llm.prompts.8.role\":\"tool\",\"llm.prompts.8.tool_call_id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"food\\\",\\\"weather_info\\\":\\\"Current + temperature is 10.6\xB0C with overcast conditions. The forecast for the week + includes temperatures ranging from 12.8\xB0C to 4.1\xB0C, with occasional + rain.\\\",\\\"destination_details\\\":\\\"Brussels, the capital of Belgium, + is a vibrant city known for its eclectic mix of French and Flemish culture. + The city is famous for its rich history, stunning architecture, and a gastronomic + scene that includes Belgian waffles, chocolates, and a variety of local beers.\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_eSompCv9cwfQozN9rREMSvt1\",\"llm.completions.0.tool_calls.0.name\":\"create_itinerary\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273071226,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"124b20f6c218667c\",\"parent_span_id\":\"a6c189db4bfc7645\",\"trace_state\":\"\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.requests\",\"scope_version\":\"0.59b0\",\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Brussels\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"duration\":1772,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273070720,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"a6c189db4bfc7645\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"get_destination_info.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"get_destination_info\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":2279,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"get_destination_info\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273069960,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"ef8c2c7c4619c9ed\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"18\",\"llm.usage.prompt_tokens\":\"1890\",\"llm.usage.total_tokens\":\"1908\",\"llm.vendor\":\"openai\"},\"duration\":758,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\",\"llm.completions.0.tool_calls.0.name\":\"get_destination_info\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273069020,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"0218eda7b3b9bb1d\",\"parent_span_id\":\"aca85c1c5e5a0b71\",\"trace_state\":\"\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.requests\",\"scope_version\":\"0.59b0\",\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://api.open-meteo.com/v1/forecast?latitude=50.8465573\\u0026longitude=4.351697\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"duration\":936,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273068516,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"aca85c1c5e5a0b71\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"get_weather_forecast.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"get_weather_forecast\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":1443,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"get_weather_forecast\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273065021,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"7c4695a6beca7e4d\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"34\",\"llm.usage.prompt_tokens\":\"1577\",\"llm.usage.total_tokens\":\"1611\",\"llm.vendor\":\"openai\"},\"duration\":3494,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.completions.0.tool_calls.0.id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.completions.0.tool_calls.0.name\":\"get_weather_forecast\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273064216,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"9600088deb650377\",\"parent_span_id\":\"8e916a9c8aff9424\",\"trace_state\":\"\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.requests\",\"scope_version\":\"0.59b0\",\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://nominatim.openstreetmap.org/search?q=Brussels\\u0026format=json\\u0026limit=1\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"duration\":803,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273063113,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"8e916a9c8aff9424\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"get_location_coordinates.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"get_location_coordinates\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":1907,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"get_location_coordinates\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273062365,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"1a1c47bd2bc00292\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"18\",\"llm.usage.prompt_tokens\":\"1460\",\"llm.usage.total_tokens\":\"1478\",\"llm.vendor\":\"openai\"},\"duration\":747,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.completions.0.tool_calls.0.name\":\"get_location_coordinates\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273061243,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"93af6b44a9f31b53\",\"parent_span_id\":\"30322227a1e04753\",\"trace_state\":\"\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.requests\",\"scope_version\":\"0.59b0\",\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://restcountries.com/v3.1/region/Europe\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"duration\":1119,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273060738,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"30322227a1e04753\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"search_destinations.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"search_destinations\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":1626,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"search_destinations\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273059770,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"6b3a38f23a58e2ec\",\"parent_span_id\":\"\",\"trace_state\":\"\",\"span_name\":\"Agent + Workflow\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.vendor\":\"openai_agents\",\"llm.workflow.name\":\"Agent + Workflow\",\"traceloop.span.kind\":\"workflow\"},\"duration\":68638,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273059772,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"1532a6cbf1af0cf4\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"21\",\"llm.usage.prompt_tokens\":\"932\",\"llm.usage.total_tokens\":\"953\",\"llm.vendor\":\"openai\"},\"duration\":964,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.completions.0.tool_calls.0.name\":\"search_destinations\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273059771,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"0860f990bbf0d202\",\"parent_span_id\":\"6b3a38f23a58e2ec\",\"trace_state\":\"\",\"span_name\":\"Travel + Planner Agent.agent\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"agent\"},\"duration\":68638,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273050370,\"trace_id\":\"f53581d7de2b03275fad361fd5a2a9fe\",\"span_id\":\"26a76219c3a96087\",\"parent_span_id\":\"75e8e03fcd5c579c\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"457\",\"llm.usage.prompt_tokens\":\"1788\",\"llm.usage.total_tokens\":\"2245\",\"llm.vendor\":\"openai\"},\"duration\":7395,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"I + want to visit Istanbul for 14 days with a luxury budget. I love culture. Create + me an itinerary.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Istanbul\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf0069196912a990819484fdd2dcdc412a40\",\"llm.prompts.1.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.2.role\":\"assistant\",\"llm.prompts.2.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Istanbul\\\",\\\"latitude\\\":41.0082,\\\"longitude\\\":28.9784}\",\"llm.prompts.2.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf0069196912cb508194baaa834e6178f409\",\"llm.prompts.2.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Istanbul\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf0069196913081081949ea3f0552dde048d\",\"llm.prompts.3.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Istanbul' coordinates=LocationCoordinates(location_name='Istanbul', + latitude=41.006381, longitude=28.9758715, country='T\xFCrkiye', display_name='\u0130stanbul, + Fatih, \u0130stanbul, Marmara B\xF6lgesi, 34122, T\xFCrkiye')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_GYQijzIwaig9kOv11DCXIYUx\",\"llm.prompts.5.content\":\"status='success' + message='Weather forecast retrieved for Istanbul' forecast=WeatherForecast(location='Istanbul', + latitude=41.0082, longitude=28.9784, current_temperature=12.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-16', temp_max=16.4, temp_min=11.4, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=19.1, temp_min=13.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=19.9, temp_min=17.5, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=19.6, temp_min=14.2, + precipitation=0.0), DailyForecast(date='2025-11-20', temp_max=20.2, temp_min=15.5, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=19.1, temp_min=15.9, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=19.3, temp_min=17.3, + precipitation=0.0)])\",\"llm.prompts.5.role\":\"tool\",\"llm.prompts.5.tool_call_id\":\"call_nPEeWiumus9MIADcIxzJCgRy\",\"llm.prompts.6.content\":\"status='success' + message='Retrieved information for Istanbul' info=DestinationInfo(title='Istanbul', + summary='Largest city in Turkey', extract=\\\"Istanbul is the largest city + in Turkey, constituting the country's economic, cultural, and historical heart. + With a population over 15 million, it is home to 18% of the population of + Turkey. Istanbul is among the largest cities in Europe and in the world by + population. It is a city on two continents; about two-thirds of its population + live in Europe and the rest in Asia. Istanbul straddles the Bosphorus\u2014one + of the world's busiest waterways\u2014in northwestern Turkey, between the + Sea of Marmara and the Black Sea. Its area of 5,461 square kilometers (2,109\\\\xa0sq\\\\xa0mi) + is coterminous with Istanbul Province. Under the K\xF6ppen climate classification, + Istanbul's climate is considered a form of Mediterranean climate, with aspects + of other temperate climate types.\\\")\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_zjmjB8pYX6092B76g3Kf0Os7\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"Istanbul\\\",\\\"duration_days\\\":14,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"culture\\\",\\\"weather_info\\\":\\\"Current + temperature: 12.1\xB0C, Partly cloudy. Upcoming days: Mild temperatures ranging + from 16.4\xB0C to 20.2\xB0C, mostly dry.\\\",\\\"destination_details\\\":\\\"Istanbul + is the largest city in Turkey, a cultural and historical heart, straddling + two continents. Known for its rich history, diverse culture, and vibrant economy, + Istanbul offers experiences across its European and Asian parts and is famous + for its unique position along the Bosphorus strait.\\\"}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf00691969171b70819489df97e9bb74c720\",\"llm.prompts.7.tool_calls.0.name\":\"create_itinerary\",\"llm.prompts.8.content\":\"status='error' + message='Failed to create itinerary: Could not parse response content as the + length limit was reached - CompletionUsage(completion_tokens=3000, prompt_tokens=579, + total_tokens=3579, completion_tokens_details=CompletionTokensDetails(accepted_prediction_tokens=0, + audio_tokens=0, reasoning_tokens=0, rejected_prediction_tokens=0), prompt_tokens_details=PromptTokensDetails(audio_tokens=0, + cached_tokens=0))' itinerary=None\",\"llm.prompts.8.role\":\"tool\",\"llm.prompts.8.tool_call_id\":\"call_yARcP5N6jrtei4FYYVIeBYvy\"},\"completions\":{\"llm.completions.0.content\":\"I'm + unable to produce the complete itinerary as expected due to a technical issue. + However, here's a draft plan to get you started:\\n\\n### Istanbul 14-Day + Luxury Cultural Itinerary\\n\\n**Day 1-2: Arrival and Initial Exploration**\\n- + **Stay:** Check into a luxury hotel like the \xC7\u0131ra\u011Fan Palace Kempinski\\n- + **Explore:** Blue Mosque, Hagia Sophia, and the Basilica Cistern\\n- **Dining:** + Dinner at Mikla with a panoramic view of the city\\n\\n**Day 3-4: Historical + Discoveries**\\n- **Sites:** Topkapi Palace, Archaeological Museum\\n- **Activity:** + Private Bosphorus Cruise\\n- **Dining:** Sunset Grill \\u0026 Bar for a view + of the Bosphorus\\n\\n**Day 5-6: Asian Side and Modern Art**\\n- **Explore:** + Maiden's Tower, Kadik\xF6y, and Moda\\n- **Art:** Visit Istanbul Modern Art + Museum\\n- **Dining:** Nusr-Et Steakhouse for a unique culinary experience\\n\\n**Day + 7-8: Shopping and Relaxation**\\n- **Shopping:** Grand Bazaar, Spice Bazaar\\n- + **Relaxing:** Hamam experience at Ayasofya Hurrem Sultan Hamam\\n- **Dining:** + 360 Istanbul for a dinner with a view\\n\\n**Day 9-10: Cultural Excursions**\\n- + **Visit:** Whirling Dervishes Show\\n- **Tour:** Day trip to Princes\u2019 + Islands\\n- **Dining:** Dinner at Neolokal for authentic Anatolian flavors\\n\\n**Day + 11-12: Southern Bosphorus and Museums**\\n- **Sites:** Ortak\xF6y, Dolmabah\xE7e + Palace\\n- **Museum:** Pera Museum\\n- **Dining:** Araka Restaurant for fusion + cuisine\\n\\n**Day 13: North and Natural Beauty**\\n- **Excursion:** Day trip + to Black Sea village of \u015Eile and A\u011Fva\\n- **Activity:** Nature trails + and exploration\\n- **Dining:** Return for a casual seaside seafood dinner\\n\\n**Day + 14: Departure**\\n- Relax with a morning coffee by the Bosphorus\\n- Check + out with memories enriched by Istanbul's cultural wealth\\n\\nFeel free to + ask for a retry, and I'll ensure a completed itinerary is generated.\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763272985065,\"trace_id\":\"f53581d7de2b03275fad361fd5a2a9fe\",\"span_id\":\"bd891d7c9529c5d0\",\"parent_span_id\":\"75e8e03fcd5c579c\",\"trace_state\":\"\",\"span_name\":\"create_itinerary.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"create_itinerary\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":65281,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"create_itinerary\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"}],\"page_size\":20,\"total_results\":54,\"next_cursor\":\"1763272985065\"}}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:21 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchSpans.test_search_spans_with_generic_filter.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchSpans.test_search_spans_with_generic_filter.yaml new file mode 100644 index 0000000..a88159c --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchSpans.test_search_spans_with_generic_filter.yaml @@ -0,0 +1,1036 @@ +interactions: +- request: + body: '{"filters":[{"field":"duration","operator":"greater_than","value":"10","value_type":"number"}],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":20}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '269' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/spans + response: + body: + string: "{\"spans\":{\"data\":[{\"environment\":\"prd\",\"timestamp\":1763273120050,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"e82e6570ac10b8f6\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"395\",\"llm.usage.prompt_tokens\":\"4354\",\"llm.usage.total_tokens\":\"4749\",\"llm.vendor\":\"openai\"},\"duration\":8358,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.10.content\":\"status='success' + message='Created 7-day itinerary for Brussels' itinerary=TravelItinerary(trip_title='A + Culinary Journey Through Brussels', destination='Brussels', duration_days=7, + total_budget_estimate='\u20AC800', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and Exploring the Historic Center', activities=[DayActivity(time='10:00 + AM', activity='Check into hotel and freshen up.', location=\\\"Hotel Amigo, + Rue de l'Amigo 1-3, 1000 Brussels\\\", notes='Moderate hotel located near + the city center.'), DayActivity(time='11:30 AM', activity='Visit the Grand + Place, UNESCO World Heritage Site.', location='Grand Place, 1000 Brussels', + notes=\\\"Don't miss the stunning architecture and the Town Hall.\\\"), DayActivity(time='1:00 + PM', activity='Lunch at Chez L\xE9on for traditional moules-frites (mussels + and fries).', location='Rue des Bouchers 18, 1000 Brussels', notes='A famous + spot for seafood lovers.'), DayActivity(time='3:00 PM', activity='Explore + the Manneken Pis statue and its surrounding area.', location=\\\"Rue de l'\xC9tuve + 46, 1000 Brussels\\\", notes='A quirky symbol of Brussels.'), DayActivity(time='5:00 + PM', activity='Enjoy a chocolate tasting at Chocopolis.', location='Rue de + la Presse 8, 1000 Brussels', notes='Sample some of the best Belgian chocolates.')], + meals=['Lunch at Chez L\xE9on', 'Dinner at Le Pain Quotidien, organic fare'], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=2, + date='2023-10-02', title='Art \\u0026 Culture Day', activities=[DayActivity(time='9:00 + AM', activity='Visit the Royal Palace of Brussels.', location='Place des Palais, + 1000 Brussels', notes='Check the opening hours as they can vary.'), DayActivity(time='11:00 + AM', activity='Tour the Magritte Museum.', location='Rue de la R\xE9gence + 3, 1000 Brussels', notes='Features works by surrealist artist Ren\xE9 Magritte.'), + DayActivity(time='1:00 PM', activity='Lunch at Caf\xE9 des Halles for local + Belgian dishes.', location='Place de la Bourse 2, 1000 Brussels', notes='A + lovely caf\xE9 with a cozy atmosphere.'), DayActivity(time='3:00 PM', activity='Stroll + through the Parc du Cinquantenaire.', location='Parc du Cinquantenaire, 1000 + Brussels', notes='Enjoy the beautiful gardens and archway.'), DayActivity(time='5:00 + PM', activity='Visit the European Parliament.', location='Rue Wiertz 60, 1047 + Brussels', notes='Free entry, but check for available tours.')], meals=['Lunch + at Caf\xE9 des Halles', \\\"Dinner at Restaurant de l'Hotel de Ville, regional + specialties\\\"], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"), DayPlan(day_number=3, date='2023-10-03', title='Belgian Beer + and Waffles', activities=[DayActivity(time='10:00 AM', activity='Join a beer + tasting tour.', location='Brussels Beer Project, Rue Antoine Dansaert 188, + 1000 Brussels', notes='Sample different Belgian beers.'), DayActivity(time='12:00 + PM', activity='Lunch at Delirium Caf\xE9 for a vast beer selection.', location='Impasse + de la Fid\xE9lit\xE9 4, 1000 Brussels', notes='Try their famous beer menu.'), + DayActivity(time='2:00 PM', activity='Visit the Belgian Comic Strip Center.', + location='Rue des Sables 20, 1000 Brussels', notes=\\\"A fun take on Belgium's + comic strip history.\\\"), DayActivity(time='4:00 PM', activity='Indulge in + Belgian waffles at Maison Dandoy.', location='Rue Charles Buls 14, 1000 Brussels', + notes='Known for their delicious Li\xE8ge waffles.'), DayActivity(time='6:00 + PM', activity='Explore the local shops in the Sablon district.', location='Sablon, + 1000 Brussels', notes='A chic area with antique shops and chocolatiers.')], + meals=['Lunch at Delirium Caf\xE9', 'Dinner at Chez L\xE9on (again, for the + moules-frites)'], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"), DayPlan(day_number=4, date='2023-10-04', title='Day Trip to + Ghent', activities=[DayActivity(time='9:00 AM', activity='Take a train to + Ghent.', location='Brussels Central Station', notes='Trains run frequently; + buy tickets at the station.'), DayActivity(time='10:00 AM', activity='Visit + Gravensteen Castle.', location='Sint-Veerleplein 11, 9000 Ghent', notes='Explore + the medieval castle.'), DayActivity(time='12:00 PM', activity='Lunch at De + Graslei, riverside dining.', location='Graslei 7, 9000 Ghent', notes='Enjoy + local dishes with a view.'), DayActivity(time='2:00 PM', activity=\\\"Stroll + through the historic center and visit St. Bavo's Cathedral.\\\", location='Sint-Baafsplein + 1, 9000 Ghent', notes='Home of the famous Ghent Altarpiece.'), DayActivity(time='4:00 + PM', activity='Try local beer at a Ghent brewery.', location='Brouwerij Gruut, + 9000 Ghent', notes='Unique brewery with its own beer style.'), DayActivity(time='6:00 + PM', activity='Return to Brussels.', location='Brussels Central Station', + notes='Trains run until late.')], meals=['Lunch at De Graslei', 'Dinner at + Le Pain Quotidien (again for delicious organic options)'], accommodation=\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=5, date='2023-10-05', + title='Markets and Local Flavors', activities=[DayActivity(time='9:00 AM', + activity='Visit the Midi Market (open on Thursdays).', location='Place du + Midi, 1060 Brussels', notes='A vibrant market with local produce and street + food.'), DayActivity(time='11:00 AM', activity='Try various cheese samples + at Fromagerie de la Place.', location='Place du Ch\xE2telain, 1050 Brussels', + notes='A delightful cheese shop.'), DayActivity(time='1:00 PM', activity='Lunch + at Les Brigittines, local cuisine.', location='Place de la Chapelle 5, 1000 + Brussels', notes='Known for hearty Belgian dishes.'), DayActivity(time='3:00 + PM', activity='Explore the Marolles district and its vintage shops.', location='Marolles, + 1000 Brussels', notes='Great for thrift shopping and unique finds.'), DayActivity(time='5:00 + PM', activity='Enjoy a beer at a local tavern, Caf\xE9 Belga.', location='Place + Eug\xE8ne Flagey, 1050 Brussels', notes='A lively spot to unwind.')], meals=['Lunch + at Les Brigittines', 'Dinner at Chez L\xE9on (to try other menu items)'], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=6, + date='2023-10-06', title='Culinary Delights', activities=[DayActivity(time='10:00 + AM', activity='Take a cooking class to learn Belgian cuisine.', location='Brussels + Cooking Classes, Rue des Bouchers 9, 1000 Brussels', notes='Pre-booking is + recommended.'), DayActivity(time='1:00 PM', activity=\\\"Enjoy the meal you've + prepared during the class.\\\", location='Brussels Cooking Classes', notes='A + unique lunch experience.'), DayActivity(time='3:00 PM', activity='Visit the + Atomium, an iconic building.', location=\\\"Avenue de l'Atomium, 1020 Brussels\\\", + notes='Check out the exhibition inside.'), DayActivity(time='5:00 PM', activity='Explore + Mini-Europe, right next to Atomium.', location='Bruparck, 1020 Brussels', + notes='A miniature park with famous European landmarks.')], meals=['Lunch + at cooking class', \\\"Dinner at La Roue d'Or, known for local favorites\\\"], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=7, + date='2023-10-07', title='Departure Day', activities=[DayActivity(time='9:00 + AM', activity='Last-minute shopping in the Galeries Royales Saint-Hubert.', + location='Galeries Royales Saint-Hubert, 1000 Brussels', notes='Beautiful + shopping arcade.'), DayActivity(time='11:00 AM', activity='Visit the Royal + Museums of Fine Arts of Belgium.', location='Rue de la R\xE9gence 3, 1000 + Brussels', notes='Explore the vast collection of art.'), DayActivity(time='1:00 + PM', activity='Lunch at Le Pain Quotidien, a final taste of organic dishes.', + location='Multiple locations', notes='Great ambiance for your last meal.'), + DayActivity(time='3:00 PM', activity='Check out from hotel and head to the + airport.', location=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\", + notes='Plan for travel time to airport.')], meals=['Lunch at Le Pain Quotidien', + 'Dinner on the flight'], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, + 1000 Brussels\\\")], travel_tips=['Purchase a Brussels Card for discounts + on entrance fees and public transport.', \\\"Always try to learn a few basic + French or Flemish phrases, it's appreciated by locals.\\\", 'Keep an umbrella + or raincoat handy due to unpredictable weather.'], packing_suggestions=['Comfortable + walking shoes for exploring the city.', 'Layers to adjust to changing temperatures + throughout the day.', 'A light waterproof jacket or umbrella for occasional + rain.'])\",\"llm.prompts.10.role\":\"tool\",\"llm.prompts.10.tool_call_id\":\"call_eSompCv9cwfQozN9rREMSvt1\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696ed14081968f4ffc1c02b6bb46\",\"llm.prompts.7.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.8.content\":\"status='success' + message='Retrieved information for Brussels' info=DestinationInfo(title='Brussels', + summary='Federal region of Belgium including the capital', extract='Brussels, + officially the Brussels-Capital Region, is a region of Belgium comprising + 19 municipalities, including the City of Brussels, which is the capital of + Belgium. The Brussels-Capital Region is located in the central portion of + the country. It is a part of both the French Community of Belgium and the + Flemish Community, and is separate from the Flemish Region (Flanders), within + which it forms an enclave, and the Walloon Region (Wallonia), located less + than 4 kilometres (2.5\\\\xa0mi) to the south.')\",\"llm.prompts.8.role\":\"tool\",\"llm.prompts.8.tool_call_id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\",\"llm.prompts.9.role\":\"assistant\",\"llm.prompts.9.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"food\\\",\\\"weather_info\\\":\\\"Current + temperature is 10.6\xB0C with overcast conditions. The forecast for the week + includes temperatures ranging from 12.8\xB0C to 4.1\xB0C, with occasional + rain.\\\",\\\"destination_details\\\":\\\"Brussels, the capital of Belgium, + is a vibrant city known for its eclectic mix of French and Flemish culture. + The city is famous for its rich history, stunning architecture, and a gastronomic + scene that includes Belgian waffles, chocolates, and a variety of local beers.\\\"}\",\"llm.prompts.9.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919697293788196b01dbbc9dc5fd320\",\"llm.prompts.9.tool_calls.0.name\":\"create_itinerary\"},\"completions\":{\"llm.completions.0.content\":\"I've + created a 7-day itinerary for a culinary adventure in Brussels, Belgium, perfect + for couples:\\n\\n### Trip Title: A Culinary Journey Through Brussels\\n\\n**Day + 1: Arrival and Exploring the Historic Center**\\n- **Stay**: Hotel Amigo\\n- + **Activities**: \\n - Visit the Grand Place\\n - Enjoy lunch at Chez L\xE9on + for moules-frites\\n - Explore the Manneken Pis and Chocopolis for a chocolate + tasting\\n- **Weather**: Overcast, 10.6\xB0C\\n\\n**Day 2: Art \\u0026 Culture + Day**\\n- **Activities**: \\n - Royal Palace of Brussels\\n - Magritte Museum\\n + \ - Parc du Cinquantenaire\\n - European Parliament tour\\n\\n**Day 3: Belgian + Beer and Waffles**\\n- **Activities**:\\n - Beer tasting tour at Brussels + Beer Project\\n - Comic Strip Center\\n - Belgian waffles at Maison Dandoy\\n + \ - Shopping in Sablon district\\n\\n**Day 4: Day Trip to Ghent**\\n- **Activities**:\\n + \ - Train to Ghent\\n - Gravensteen Castle\\n - St. Bavo's Cathedral\\n + \ - Brewery visit\\n\\n**Day 5: Markets and Local Flavors**\\n- **Activities**:\\n + \ - Midi Market visit\\n - Cheese sampling at Fromagerie de la Place\\n - + Explore Marolles district\\n\\n**Day 6: Culinary Delights**\\n- **Activities**:\\n + \ - Cooking class\\n - Visit the Atomium and Mini-Europe\\n\\n**Day 7: Departure + Day**\\n- **Activities**:\\n - Shopping at Galeries Royales Saint-Hubert\\n + \ - Royal Museums of Fine Arts\\n\\n**Travel Tips**: \\n- Purchase a Brussels + Card for discounts.\\n- Pack layers and a waterproof jacket for the weather.\\n\\n**Budget + Estimate**: \u20AC800\\n\\nEnjoy your delicious and romantic European escape + in Brussels!\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273077046,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"01e55a77b2a2dce0\",\"parent_span_id\":\"8f466a6f6bb9d33b\",\"trace_state\":\"\",\"span_name\":\"openai.chat\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai.v1\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.headers\":\"None\",\"llm.is_streaming\":\"false\",\"llm.openai.api_base\":\"https://api.openai.com/v1/\",\"llm.openai.system_fingerprint\":\"fp_51db84afab\",\"llm.request.max_tokens\":\"3000\",\"llm.request.model\":\"gpt-4o-mini\",\"llm.request.structured_output_schema\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\",\"llm.request.temperature\":\"0.700000\",\"llm.request.type\":\"chat\",\"llm.response.id\":\"chatcmpl-CcQAIZ9vs66Ad2yBRePDGlr93GdfC\",\"llm.response.model\":\"gpt-4o-mini-2024-07-18\",\"llm.usage.cache_read_input_tokens\":\"0\",\"llm.usage.completion_tokens\":\"2078\",\"llm.usage.prompt_tokens\":\"579\",\"llm.usage.reasoning_tokens\":\"0\",\"llm.usage.total_tokens\":\"2657\",\"llm.vendor\":\"openai\"},\"duration\":43000,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"You + are an expert travel planner who creates detailed, practical itineraries.\",\"llm.prompts.0.role\":\"system\",\"llm.prompts.1.content\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Brussels.\\n\\nTrip + Details:\\n- Destination: Brussels\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: food\\n- Weather: Current temperature is 10.6\xB0C with overcast + conditions. The forecast for the week includes temperatures ranging from 12.8\xB0C + to 4.1\xB0C, with occasional rain.\\n- Destination Info: Brussels, the capital + of Belgium, is a vibrant city known for its eclectic mix of French and Flemish + culture. The city is famous for its rich history, stunning architecture, and + a gastronomic scene that includes Belgian waffles, chocolates, and a variety + of local beers.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and food interests.\\nEach day should have 3-5 activities + with specific times, locations, and helpful notes.\\n\",\"llm.prompts.1.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"{\\\"trip_title\\\":\\\"A + Culinary Journey Through Brussels\\\",\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC800\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Exploring the Historic Center\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 + AM\\\",\\\"activity\\\":\\\"Check into hotel and freshen up.\\\",\\\"location\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\",\\\"notes\\\":\\\"Moderate hotel + located near the city center.\\\"},{\\\"time\\\":\\\"11:30 AM\\\",\\\"activity\\\":\\\"Visit + the Grand Place, UNESCO World Heritage Site.\\\",\\\"location\\\":\\\"Grand + Place, 1000 Brussels\\\",\\\"notes\\\":\\\"Don't miss the stunning architecture + and the Town Hall.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Chez L\xE9on for traditional moules-frites (mussels and fries).\\\",\\\"location\\\":\\\"Rue + des Bouchers 18, 1000 Brussels\\\",\\\"notes\\\":\\\"A famous spot for seafood + lovers.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Explore the + Manneken Pis statue and its surrounding area.\\\",\\\"location\\\":\\\"Rue + de l'\xC9tuve 46, 1000 Brussels\\\",\\\"notes\\\":\\\"A quirky symbol of Brussels.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a chocolate tasting at Chocopolis.\\\",\\\"location\\\":\\\"Rue + de la Presse 8, 1000 Brussels\\\",\\\"notes\\\":\\\"Sample some of the best + Belgian chocolates.\\\"}],\\\"meals\\\":[\\\"Lunch at Chez L\xE9on\\\",\\\"Dinner + at Le Pain Quotidien, organic fare\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, + Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Art + \\u0026 Culture Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Visit + the Royal Palace of Brussels.\\\",\\\"location\\\":\\\"Place des Palais, 1000 + Brussels\\\",\\\"notes\\\":\\\"Check the opening hours as they can vary.\\\"},{\\\"time\\\":\\\"11:00 + AM\\\",\\\"activity\\\":\\\"Tour the Magritte Museum.\\\",\\\"location\\\":\\\"Rue + de la R\xE9gence 3, 1000 Brussels\\\",\\\"notes\\\":\\\"Features works by + surrealist artist Ren\xE9 Magritte.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Caf\xE9 des Halles for local Belgian dishes.\\\",\\\"location\\\":\\\"Place + de la Bourse 2, 1000 Brussels\\\",\\\"notes\\\":\\\"A lovely caf\xE9 with + a cozy atmosphere.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Stroll + through the Parc du Cinquantenaire.\\\",\\\"location\\\":\\\"Parc du Cinquantenaire, + 1000 Brussels\\\",\\\"notes\\\":\\\"Enjoy the beautiful gardens and archway.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Visit the European Parliament.\\\",\\\"location\\\":\\\"Rue + Wiertz 60, 1047 Brussels\\\",\\\"notes\\\":\\\"Free entry, but check for available + tours.\\\"}],\\\"meals\\\":[\\\"Lunch at Caf\xE9 des Halles\\\",\\\"Dinner + at Restaurant de l'Hotel de Ville, regional specialties\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Belgian + Beer and Waffles\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Join + a beer tasting tour.\\\",\\\"location\\\":\\\"Brussels Beer Project, Rue Antoine + Dansaert 188, 1000 Brussels\\\",\\\"notes\\\":\\\"Sample different Belgian + beers.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch at Delirium + Caf\xE9 for a vast beer selection.\\\",\\\"location\\\":\\\"Impasse de la + Fid\xE9lit\xE9 4, 1000 Brussels\\\",\\\"notes\\\":\\\"Try their famous beer + menu.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Visit the Belgian + Comic Strip Center.\\\",\\\"location\\\":\\\"Rue des Sables 20, 1000 Brussels\\\",\\\"notes\\\":\\\"A + fun take on Belgium's comic strip history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Indulge + in Belgian waffles at Maison Dandoy.\\\",\\\"location\\\":\\\"Rue Charles + Buls 14, 1000 Brussels\\\",\\\"notes\\\":\\\"Known for their delicious Li\xE8ge + waffles.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Explore the + local shops in the Sablon district.\\\",\\\"location\\\":\\\"Sablon, 1000 + Brussels\\\",\\\"notes\\\":\\\"A chic area with antique shops and chocolatiers.\\\"}],\\\"meals\\\":[\\\"Lunch + at Delirium Caf\xE9\\\",\\\"Dinner at Chez L\xE9on (again, for the moules-frites)\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":4,\\\"date\\\":\\\"2023-10-04\\\",\\\"title\\\":\\\"Day + Trip to Ghent\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Take + a train to Ghent.\\\",\\\"location\\\":\\\"Brussels Central Station\\\",\\\"notes\\\":\\\"Trains + run frequently; buy tickets at the station.\\\"},{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Visit + Gravensteen Castle.\\\",\\\"location\\\":\\\"Sint-Veerleplein 11, 9000 Ghent\\\",\\\"notes\\\":\\\"Explore + the medieval castle.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at De Graslei, riverside dining.\\\",\\\"location\\\":\\\"Graslei 7, 9000 + Ghent\\\",\\\"notes\\\":\\\"Enjoy local dishes with a view.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Stroll through the historic center and visit St. + Bavo's Cathedral.\\\",\\\"location\\\":\\\"Sint-Baafsplein 1, 9000 Ghent\\\",\\\"notes\\\":\\\"Home + of the famous Ghent Altarpiece.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Try + local beer at a Ghent brewery.\\\",\\\"location\\\":\\\"Brouwerij Gruut, 9000 + Ghent\\\",\\\"notes\\\":\\\"Unique brewery with its own beer style.\\\"},{\\\"time\\\":\\\"6:00 + PM\\\",\\\"activity\\\":\\\"Return to Brussels.\\\",\\\"location\\\":\\\"Brussels + Central Station\\\",\\\"notes\\\":\\\"Trains run until late.\\\"}],\\\"meals\\\":[\\\"Lunch + at De Graslei\\\",\\\"Dinner at Le Pain Quotidien (again for delicious organic + options)\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"},{\\\"day_number\\\":5,\\\"date\\\":\\\"2023-10-05\\\",\\\"title\\\":\\\"Markets + and Local Flavors\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Visit + the Midi Market (open on Thursdays).\\\",\\\"location\\\":\\\"Place du Midi, + 1060 Brussels\\\",\\\"notes\\\":\\\"A vibrant market with local produce and + street food.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Try + various cheese samples at Fromagerie de la Place.\\\",\\\"location\\\":\\\"Place + du Ch\xE2telain, 1050 Brussels\\\",\\\"notes\\\":\\\"A delightful cheese shop.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Les Brigittines, local cuisine.\\\",\\\"location\\\":\\\"Place + de la Chapelle 5, 1000 Brussels\\\",\\\"notes\\\":\\\"Known for hearty Belgian + dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Explore the + Marolles district and its vintage shops.\\\",\\\"location\\\":\\\"Marolles, + 1000 Brussels\\\",\\\"notes\\\":\\\"Great for thrift shopping and unique finds.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a beer at a local tavern, Caf\xE9 Belga.\\\",\\\"location\\\":\\\"Place + Eug\xE8ne Flagey, 1050 Brussels\\\",\\\"notes\\\":\\\"A lively spot to unwind.\\\"}],\\\"meals\\\":[\\\"Lunch + at Les Brigittines\\\",\\\"Dinner at Chez L\xE9on (to try other menu items)\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":6,\\\"date\\\":\\\"2023-10-06\\\",\\\"title\\\":\\\"Culinary + Delights\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Take + a cooking class to learn Belgian cuisine.\\\",\\\"location\\\":\\\"Brussels + Cooking Classes, Rue des Bouchers 9, 1000 Brussels\\\",\\\"notes\\\":\\\"Pre-booking + is recommended.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Enjoy + the meal you've prepared during the class.\\\",\\\"location\\\":\\\"Brussels + Cooking Classes\\\",\\\"notes\\\":\\\"A unique lunch experience.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Visit the Atomium, an iconic building.\\\",\\\"location\\\":\\\"Avenue + de l'Atomium, 1020 Brussels\\\",\\\"notes\\\":\\\"Check out the exhibition + inside.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Explore Mini-Europe, + right next to Atomium.\\\",\\\"location\\\":\\\"Bruparck, 1020 Brussels\\\",\\\"notes\\\":\\\"A + miniature park with famous European landmarks.\\\"}],\\\"meals\\\":[\\\"Lunch + at cooking class\\\",\\\"Dinner at La Roue d'Or, known for local favorites\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":7,\\\"date\\\":\\\"2023-10-07\\\",\\\"title\\\":\\\"Departure + Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Last-minute + shopping in the Galeries Royales Saint-Hubert.\\\",\\\"location\\\":\\\"Galeries + Royales Saint-Hubert, 1000 Brussels\\\",\\\"notes\\\":\\\"Beautiful shopping + arcade.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit the + Royal Museums of Fine Arts of Belgium.\\\",\\\"location\\\":\\\"Rue de la + R\xE9gence 3, 1000 Brussels\\\",\\\"notes\\\":\\\"Explore the vast collection + of art.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch at Le + Pain Quotidien, a final taste of organic dishes.\\\",\\\"location\\\":\\\"Multiple + locations\\\",\\\"notes\\\":\\\"Great ambiance for your last meal.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Check out from hotel and head to the airport.\\\",\\\"location\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\",\\\"notes\\\":\\\"Plan for travel + time to airport.\\\"}],\\\"meals\\\":[\\\"Lunch at Le Pain Quotidien\\\",\\\"Dinner + on the flight\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, Rue de l'Amigo 1-3, + 1000 Brussels\\\"}],\\\"travel_tips\\\":[\\\"Purchase a Brussels Card for + discounts on entrance fees and public transport.\\\",\\\"Always try to learn + a few basic French or Flemish phrases, it's appreciated by locals.\\\",\\\"Keep + an umbrella or raincoat handy due to unpredictable weather.\\\"],\\\"packing_suggestions\\\":[\\\"Comfortable + walking shoes for exploring the city.\\\",\\\"Layers to adjust to changing + temperatures throughout the day.\\\",\\\"A light waterproof jacket or umbrella + for occasional rain.\\\"]}\",\"llm.completions.0.finish_reason\":\"stop\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273076537,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"8f466a6f6bb9d33b\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"create_itinerary.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"create_itinerary\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":43510,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"create_itinerary\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273073000,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"05f6c52415ea7bac\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"132\",\"llm.usage.prompt_tokens\":\"2060\",\"llm.usage.total_tokens\":\"2192\",\"llm.vendor\":\"openai\"},\"duration\":3536,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696ed14081968f4ffc1c02b6bb46\",\"llm.prompts.7.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.8.content\":\"status='success' + message='Retrieved information for Brussels' info=DestinationInfo(title='Brussels', + summary='Federal region of Belgium including the capital', extract='Brussels, + officially the Brussels-Capital Region, is a region of Belgium comprising + 19 municipalities, including the City of Brussels, which is the capital of + Belgium. The Brussels-Capital Region is located in the central portion of + the country. It is a part of both the French Community of Belgium and the + Flemish Community, and is separate from the Flemish Region (Flanders), within + which it forms an enclave, and the Walloon Region (Wallonia), located less + than 4 kilometres (2.5\\\\xa0mi) to the south.')\",\"llm.prompts.8.role\":\"tool\",\"llm.prompts.8.tool_call_id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"food\\\",\\\"weather_info\\\":\\\"Current + temperature is 10.6\xB0C with overcast conditions. The forecast for the week + includes temperatures ranging from 12.8\xB0C to 4.1\xB0C, with occasional + rain.\\\",\\\"destination_details\\\":\\\"Brussels, the capital of Belgium, + is a vibrant city known for its eclectic mix of French and Flemish culture. + The city is famous for its rich history, stunning architecture, and a gastronomic + scene that includes Belgian waffles, chocolates, and a variety of local beers.\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_eSompCv9cwfQozN9rREMSvt1\",\"llm.completions.0.tool_calls.0.name\":\"create_itinerary\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273071226,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"124b20f6c218667c\",\"parent_span_id\":\"a6c189db4bfc7645\",\"trace_state\":\"\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.requests\",\"scope_version\":\"0.59b0\",\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Brussels\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"duration\":1772,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273070720,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"a6c189db4bfc7645\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"get_destination_info.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"get_destination_info\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":2279,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"get_destination_info\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273069960,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"ef8c2c7c4619c9ed\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"18\",\"llm.usage.prompt_tokens\":\"1890\",\"llm.usage.total_tokens\":\"1908\",\"llm.vendor\":\"openai\"},\"duration\":758,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\",\"llm.completions.0.tool_calls.0.name\":\"get_destination_info\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273069020,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"0218eda7b3b9bb1d\",\"parent_span_id\":\"aca85c1c5e5a0b71\",\"trace_state\":\"\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.requests\",\"scope_version\":\"0.59b0\",\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://api.open-meteo.com/v1/forecast?latitude=50.8465573\\u0026longitude=4.351697\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"duration\":936,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273068516,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"aca85c1c5e5a0b71\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"get_weather_forecast.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"get_weather_forecast\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":1443,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"get_weather_forecast\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273065021,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"7c4695a6beca7e4d\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"34\",\"llm.usage.prompt_tokens\":\"1577\",\"llm.usage.total_tokens\":\"1611\",\"llm.vendor\":\"openai\"},\"duration\":3494,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.completions.0.tool_calls.0.id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.completions.0.tool_calls.0.name\":\"get_weather_forecast\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273064216,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"9600088deb650377\",\"parent_span_id\":\"8e916a9c8aff9424\",\"trace_state\":\"\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.requests\",\"scope_version\":\"0.59b0\",\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://nominatim.openstreetmap.org/search?q=Brussels\\u0026format=json\\u0026limit=1\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"duration\":803,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273063113,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"8e916a9c8aff9424\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"get_location_coordinates.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"get_location_coordinates\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":1907,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"get_location_coordinates\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273062365,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"1a1c47bd2bc00292\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"18\",\"llm.usage.prompt_tokens\":\"1460\",\"llm.usage.total_tokens\":\"1478\",\"llm.vendor\":\"openai\"},\"duration\":747,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.completions.0.tool_calls.0.name\":\"get_location_coordinates\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273061243,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"93af6b44a9f31b53\",\"parent_span_id\":\"30322227a1e04753\",\"trace_state\":\"\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.requests\",\"scope_version\":\"0.59b0\",\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://restcountries.com/v3.1/region/Europe\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"duration\":1119,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273060738,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"30322227a1e04753\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"search_destinations.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"search_destinations\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":1626,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"search_destinations\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273059770,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"6b3a38f23a58e2ec\",\"parent_span_id\":\"\",\"trace_state\":\"\",\"span_name\":\"Agent + Workflow\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.vendor\":\"openai_agents\",\"llm.workflow.name\":\"Agent + Workflow\",\"traceloop.span.kind\":\"workflow\"},\"duration\":68638,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273059772,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"1532a6cbf1af0cf4\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"21\",\"llm.usage.prompt_tokens\":\"932\",\"llm.usage.total_tokens\":\"953\",\"llm.vendor\":\"openai\"},\"duration\":964,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.completions.0.tool_calls.0.name\":\"search_destinations\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273059771,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"0860f990bbf0d202\",\"parent_span_id\":\"6b3a38f23a58e2ec\",\"trace_state\":\"\",\"span_name\":\"Travel + Planner Agent.agent\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"agent\"},\"duration\":68638,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273050370,\"trace_id\":\"f53581d7de2b03275fad361fd5a2a9fe\",\"span_id\":\"26a76219c3a96087\",\"parent_span_id\":\"75e8e03fcd5c579c\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"457\",\"llm.usage.prompt_tokens\":\"1788\",\"llm.usage.total_tokens\":\"2245\",\"llm.vendor\":\"openai\"},\"duration\":7395,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"I + want to visit Istanbul for 14 days with a luxury budget. I love culture. Create + me an itinerary.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Istanbul\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf0069196912a990819484fdd2dcdc412a40\",\"llm.prompts.1.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.2.role\":\"assistant\",\"llm.prompts.2.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Istanbul\\\",\\\"latitude\\\":41.0082,\\\"longitude\\\":28.9784}\",\"llm.prompts.2.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf0069196912cb508194baaa834e6178f409\",\"llm.prompts.2.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Istanbul\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf0069196913081081949ea3f0552dde048d\",\"llm.prompts.3.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Istanbul' coordinates=LocationCoordinates(location_name='Istanbul', + latitude=41.006381, longitude=28.9758715, country='T\xFCrkiye', display_name='\u0130stanbul, + Fatih, \u0130stanbul, Marmara B\xF6lgesi, 34122, T\xFCrkiye')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_GYQijzIwaig9kOv11DCXIYUx\",\"llm.prompts.5.content\":\"status='success' + message='Weather forecast retrieved for Istanbul' forecast=WeatherForecast(location='Istanbul', + latitude=41.0082, longitude=28.9784, current_temperature=12.1, current_conditions='Partly + cloudy', forecast_days=[DailyForecast(date='2025-11-16', temp_max=16.4, temp_min=11.4, + precipitation=0.0), DailyForecast(date='2025-11-17', temp_max=19.1, temp_min=13.2, + precipitation=0.0), DailyForecast(date='2025-11-18', temp_max=19.9, temp_min=17.5, + precipitation=0.0), DailyForecast(date='2025-11-19', temp_max=19.6, temp_min=14.2, + precipitation=0.0), DailyForecast(date='2025-11-20', temp_max=20.2, temp_min=15.5, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=19.1, temp_min=15.9, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=19.3, temp_min=17.3, + precipitation=0.0)])\",\"llm.prompts.5.role\":\"tool\",\"llm.prompts.5.tool_call_id\":\"call_nPEeWiumus9MIADcIxzJCgRy\",\"llm.prompts.6.content\":\"status='success' + message='Retrieved information for Istanbul' info=DestinationInfo(title='Istanbul', + summary='Largest city in Turkey', extract=\\\"Istanbul is the largest city + in Turkey, constituting the country's economic, cultural, and historical heart. + With a population over 15 million, it is home to 18% of the population of + Turkey. Istanbul is among the largest cities in Europe and in the world by + population. It is a city on two continents; about two-thirds of its population + live in Europe and the rest in Asia. Istanbul straddles the Bosphorus\u2014one + of the world's busiest waterways\u2014in northwestern Turkey, between the + Sea of Marmara and the Black Sea. Its area of 5,461 square kilometers (2,109\\\\xa0sq\\\\xa0mi) + is coterminous with Istanbul Province. Under the K\xF6ppen climate classification, + Istanbul's climate is considered a form of Mediterranean climate, with aspects + of other temperate climate types.\\\")\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_zjmjB8pYX6092B76g3Kf0Os7\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"Istanbul\\\",\\\"duration_days\\\":14,\\\"budget\\\":\\\"luxury\\\",\\\"interests\\\":\\\"culture\\\",\\\"weather_info\\\":\\\"Current + temperature: 12.1\xB0C, Partly cloudy. Upcoming days: Mild temperatures ranging + from 16.4\xB0C to 20.2\xB0C, mostly dry.\\\",\\\"destination_details\\\":\\\"Istanbul + is the largest city in Turkey, a cultural and historical heart, straddling + two continents. Known for its rich history, diverse culture, and vibrant economy, + Istanbul offers experiences across its European and Asian parts and is famous + for its unique position along the Bosphorus strait.\\\"}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_0a3ac9e9c00206bf00691969171b70819489df97e9bb74c720\",\"llm.prompts.7.tool_calls.0.name\":\"create_itinerary\",\"llm.prompts.8.content\":\"status='error' + message='Failed to create itinerary: Could not parse response content as the + length limit was reached - CompletionUsage(completion_tokens=3000, prompt_tokens=579, + total_tokens=3579, completion_tokens_details=CompletionTokensDetails(accepted_prediction_tokens=0, + audio_tokens=0, reasoning_tokens=0, rejected_prediction_tokens=0), prompt_tokens_details=PromptTokensDetails(audio_tokens=0, + cached_tokens=0))' itinerary=None\",\"llm.prompts.8.role\":\"tool\",\"llm.prompts.8.tool_call_id\":\"call_yARcP5N6jrtei4FYYVIeBYvy\"},\"completions\":{\"llm.completions.0.content\":\"I'm + unable to produce the complete itinerary as expected due to a technical issue. + However, here's a draft plan to get you started:\\n\\n### Istanbul 14-Day + Luxury Cultural Itinerary\\n\\n**Day 1-2: Arrival and Initial Exploration**\\n- + **Stay:** Check into a luxury hotel like the \xC7\u0131ra\u011Fan Palace Kempinski\\n- + **Explore:** Blue Mosque, Hagia Sophia, and the Basilica Cistern\\n- **Dining:** + Dinner at Mikla with a panoramic view of the city\\n\\n**Day 3-4: Historical + Discoveries**\\n- **Sites:** Topkapi Palace, Archaeological Museum\\n- **Activity:** + Private Bosphorus Cruise\\n- **Dining:** Sunset Grill \\u0026 Bar for a view + of the Bosphorus\\n\\n**Day 5-6: Asian Side and Modern Art**\\n- **Explore:** + Maiden's Tower, Kadik\xF6y, and Moda\\n- **Art:** Visit Istanbul Modern Art + Museum\\n- **Dining:** Nusr-Et Steakhouse for a unique culinary experience\\n\\n**Day + 7-8: Shopping and Relaxation**\\n- **Shopping:** Grand Bazaar, Spice Bazaar\\n- + **Relaxing:** Hamam experience at Ayasofya Hurrem Sultan Hamam\\n- **Dining:** + 360 Istanbul for a dinner with a view\\n\\n**Day 9-10: Cultural Excursions**\\n- + **Visit:** Whirling Dervishes Show\\n- **Tour:** Day trip to Princes\u2019 + Islands\\n- **Dining:** Dinner at Neolokal for authentic Anatolian flavors\\n\\n**Day + 11-12: Southern Bosphorus and Museums**\\n- **Sites:** Ortak\xF6y, Dolmabah\xE7e + Palace\\n- **Museum:** Pera Museum\\n- **Dining:** Araka Restaurant for fusion + cuisine\\n\\n**Day 13: North and Natural Beauty**\\n- **Excursion:** Day trip + to Black Sea village of \u015Eile and A\u011Fva\\n- **Activity:** Nature trails + and exploration\\n- **Dining:** Return for a casual seaside seafood dinner\\n\\n**Day + 14: Departure**\\n- Relax with a morning coffee by the Bosphorus\\n- Check + out with memories enriched by Istanbul's cultural wealth\\n\\nFeel free to + ask for a retry, and I'll ensure a completed itinerary is generated.\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763272985065,\"trace_id\":\"f53581d7de2b03275fad361fd5a2a9fe\",\"span_id\":\"bd891d7c9529c5d0\",\"parent_span_id\":\"75e8e03fcd5c579c\",\"trace_state\":\"\",\"span_name\":\"create_itinerary.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"create_itinerary\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":65281,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"create_itinerary\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"}],\"page_size\":20,\"total_results\":54,\"next_cursor\":\"1763272985065\"}}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:23 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchSpans.test_search_spans_with_limit.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchSpans.test_search_spans_with_limit.yaml new file mode 100644 index 0000000..b7de93c --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchSpans.test_search_spans_with_limit.yaml @@ -0,0 +1,754 @@ +interactions: +- request: + body: '{"filters":[],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":10}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '188' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/spans + response: + body: + string: "{\"spans\":{\"data\":[{\"environment\":\"prd\",\"timestamp\":1763273120050,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"e82e6570ac10b8f6\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"395\",\"llm.usage.prompt_tokens\":\"4354\",\"llm.usage.total_tokens\":\"4749\",\"llm.vendor\":\"openai\"},\"duration\":8358,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.10.content\":\"status='success' + message='Created 7-day itinerary for Brussels' itinerary=TravelItinerary(trip_title='A + Culinary Journey Through Brussels', destination='Brussels', duration_days=7, + total_budget_estimate='\u20AC800', daily_plans=[DayPlan(day_number=1, date='2023-10-01', + title='Arrival and Exploring the Historic Center', activities=[DayActivity(time='10:00 + AM', activity='Check into hotel and freshen up.', location=\\\"Hotel Amigo, + Rue de l'Amigo 1-3, 1000 Brussels\\\", notes='Moderate hotel located near + the city center.'), DayActivity(time='11:30 AM', activity='Visit the Grand + Place, UNESCO World Heritage Site.', location='Grand Place, 1000 Brussels', + notes=\\\"Don't miss the stunning architecture and the Town Hall.\\\"), DayActivity(time='1:00 + PM', activity='Lunch at Chez L\xE9on for traditional moules-frites (mussels + and fries).', location='Rue des Bouchers 18, 1000 Brussels', notes='A famous + spot for seafood lovers.'), DayActivity(time='3:00 PM', activity='Explore + the Manneken Pis statue and its surrounding area.', location=\\\"Rue de l'\xC9tuve + 46, 1000 Brussels\\\", notes='A quirky symbol of Brussels.'), DayActivity(time='5:00 + PM', activity='Enjoy a chocolate tasting at Chocopolis.', location='Rue de + la Presse 8, 1000 Brussels', notes='Sample some of the best Belgian chocolates.')], + meals=['Lunch at Chez L\xE9on', 'Dinner at Le Pain Quotidien, organic fare'], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=2, + date='2023-10-02', title='Art \\u0026 Culture Day', activities=[DayActivity(time='9:00 + AM', activity='Visit the Royal Palace of Brussels.', location='Place des Palais, + 1000 Brussels', notes='Check the opening hours as they can vary.'), DayActivity(time='11:00 + AM', activity='Tour the Magritte Museum.', location='Rue de la R\xE9gence + 3, 1000 Brussels', notes='Features works by surrealist artist Ren\xE9 Magritte.'), + DayActivity(time='1:00 PM', activity='Lunch at Caf\xE9 des Halles for local + Belgian dishes.', location='Place de la Bourse 2, 1000 Brussels', notes='A + lovely caf\xE9 with a cozy atmosphere.'), DayActivity(time='3:00 PM', activity='Stroll + through the Parc du Cinquantenaire.', location='Parc du Cinquantenaire, 1000 + Brussels', notes='Enjoy the beautiful gardens and archway.'), DayActivity(time='5:00 + PM', activity='Visit the European Parliament.', location='Rue Wiertz 60, 1047 + Brussels', notes='Free entry, but check for available tours.')], meals=['Lunch + at Caf\xE9 des Halles', \\\"Dinner at Restaurant de l'Hotel de Ville, regional + specialties\\\"], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"), DayPlan(day_number=3, date='2023-10-03', title='Belgian Beer + and Waffles', activities=[DayActivity(time='10:00 AM', activity='Join a beer + tasting tour.', location='Brussels Beer Project, Rue Antoine Dansaert 188, + 1000 Brussels', notes='Sample different Belgian beers.'), DayActivity(time='12:00 + PM', activity='Lunch at Delirium Caf\xE9 for a vast beer selection.', location='Impasse + de la Fid\xE9lit\xE9 4, 1000 Brussels', notes='Try their famous beer menu.'), + DayActivity(time='2:00 PM', activity='Visit the Belgian Comic Strip Center.', + location='Rue des Sables 20, 1000 Brussels', notes=\\\"A fun take on Belgium's + comic strip history.\\\"), DayActivity(time='4:00 PM', activity='Indulge in + Belgian waffles at Maison Dandoy.', location='Rue Charles Buls 14, 1000 Brussels', + notes='Known for their delicious Li\xE8ge waffles.'), DayActivity(time='6:00 + PM', activity='Explore the local shops in the Sablon district.', location='Sablon, + 1000 Brussels', notes='A chic area with antique shops and chocolatiers.')], + meals=['Lunch at Delirium Caf\xE9', 'Dinner at Chez L\xE9on (again, for the + moules-frites)'], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"), DayPlan(day_number=4, date='2023-10-04', title='Day Trip to + Ghent', activities=[DayActivity(time='9:00 AM', activity='Take a train to + Ghent.', location='Brussels Central Station', notes='Trains run frequently; + buy tickets at the station.'), DayActivity(time='10:00 AM', activity='Visit + Gravensteen Castle.', location='Sint-Veerleplein 11, 9000 Ghent', notes='Explore + the medieval castle.'), DayActivity(time='12:00 PM', activity='Lunch at De + Graslei, riverside dining.', location='Graslei 7, 9000 Ghent', notes='Enjoy + local dishes with a view.'), DayActivity(time='2:00 PM', activity=\\\"Stroll + through the historic center and visit St. Bavo's Cathedral.\\\", location='Sint-Baafsplein + 1, 9000 Ghent', notes='Home of the famous Ghent Altarpiece.'), DayActivity(time='4:00 + PM', activity='Try local beer at a Ghent brewery.', location='Brouwerij Gruut, + 9000 Ghent', notes='Unique brewery with its own beer style.'), DayActivity(time='6:00 + PM', activity='Return to Brussels.', location='Brussels Central Station', + notes='Trains run until late.')], meals=['Lunch at De Graslei', 'Dinner at + Le Pain Quotidien (again for delicious organic options)'], accommodation=\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=5, date='2023-10-05', + title='Markets and Local Flavors', activities=[DayActivity(time='9:00 AM', + activity='Visit the Midi Market (open on Thursdays).', location='Place du + Midi, 1060 Brussels', notes='A vibrant market with local produce and street + food.'), DayActivity(time='11:00 AM', activity='Try various cheese samples + at Fromagerie de la Place.', location='Place du Ch\xE2telain, 1050 Brussels', + notes='A delightful cheese shop.'), DayActivity(time='1:00 PM', activity='Lunch + at Les Brigittines, local cuisine.', location='Place de la Chapelle 5, 1000 + Brussels', notes='Known for hearty Belgian dishes.'), DayActivity(time='3:00 + PM', activity='Explore the Marolles district and its vintage shops.', location='Marolles, + 1000 Brussels', notes='Great for thrift shopping and unique finds.'), DayActivity(time='5:00 + PM', activity='Enjoy a beer at a local tavern, Caf\xE9 Belga.', location='Place + Eug\xE8ne Flagey, 1050 Brussels', notes='A lively spot to unwind.')], meals=['Lunch + at Les Brigittines', 'Dinner at Chez L\xE9on (to try other menu items)'], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=6, + date='2023-10-06', title='Culinary Delights', activities=[DayActivity(time='10:00 + AM', activity='Take a cooking class to learn Belgian cuisine.', location='Brussels + Cooking Classes, Rue des Bouchers 9, 1000 Brussels', notes='Pre-booking is + recommended.'), DayActivity(time='1:00 PM', activity=\\\"Enjoy the meal you've + prepared during the class.\\\", location='Brussels Cooking Classes', notes='A + unique lunch experience.'), DayActivity(time='3:00 PM', activity='Visit the + Atomium, an iconic building.', location=\\\"Avenue de l'Atomium, 1020 Brussels\\\", + notes='Check out the exhibition inside.'), DayActivity(time='5:00 PM', activity='Explore + Mini-Europe, right next to Atomium.', location='Bruparck, 1020 Brussels', + notes='A miniature park with famous European landmarks.')], meals=['Lunch + at cooking class', \\\"Dinner at La Roue d'Or, known for local favorites\\\"], + accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"), DayPlan(day_number=7, + date='2023-10-07', title='Departure Day', activities=[DayActivity(time='9:00 + AM', activity='Last-minute shopping in the Galeries Royales Saint-Hubert.', + location='Galeries Royales Saint-Hubert, 1000 Brussels', notes='Beautiful + shopping arcade.'), DayActivity(time='11:00 AM', activity='Visit the Royal + Museums of Fine Arts of Belgium.', location='Rue de la R\xE9gence 3, 1000 + Brussels', notes='Explore the vast collection of art.'), DayActivity(time='1:00 + PM', activity='Lunch at Le Pain Quotidien, a final taste of organic dishes.', + location='Multiple locations', notes='Great ambiance for your last meal.'), + DayActivity(time='3:00 PM', activity='Check out from hotel and head to the + airport.', location=\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\", + notes='Plan for travel time to airport.')], meals=['Lunch at Le Pain Quotidien', + 'Dinner on the flight'], accommodation=\\\"Hotel Amigo, Rue de l'Amigo 1-3, + 1000 Brussels\\\")], travel_tips=['Purchase a Brussels Card for discounts + on entrance fees and public transport.', \\\"Always try to learn a few basic + French or Flemish phrases, it's appreciated by locals.\\\", 'Keep an umbrella + or raincoat handy due to unpredictable weather.'], packing_suggestions=['Comfortable + walking shoes for exploring the city.', 'Layers to adjust to changing temperatures + throughout the day.', 'A light waterproof jacket or umbrella for occasional + rain.'])\",\"llm.prompts.10.role\":\"tool\",\"llm.prompts.10.tool_call_id\":\"call_eSompCv9cwfQozN9rREMSvt1\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696ed14081968f4ffc1c02b6bb46\",\"llm.prompts.7.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.8.content\":\"status='success' + message='Retrieved information for Brussels' info=DestinationInfo(title='Brussels', + summary='Federal region of Belgium including the capital', extract='Brussels, + officially the Brussels-Capital Region, is a region of Belgium comprising + 19 municipalities, including the City of Brussels, which is the capital of + Belgium. The Brussels-Capital Region is located in the central portion of + the country. It is a part of both the French Community of Belgium and the + Flemish Community, and is separate from the Flemish Region (Flanders), within + which it forms an enclave, and the Walloon Region (Wallonia), located less + than 4 kilometres (2.5\\\\xa0mi) to the south.')\",\"llm.prompts.8.role\":\"tool\",\"llm.prompts.8.tool_call_id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\",\"llm.prompts.9.role\":\"assistant\",\"llm.prompts.9.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"food\\\",\\\"weather_info\\\":\\\"Current + temperature is 10.6\xB0C with overcast conditions. The forecast for the week + includes temperatures ranging from 12.8\xB0C to 4.1\xB0C, with occasional + rain.\\\",\\\"destination_details\\\":\\\"Brussels, the capital of Belgium, + is a vibrant city known for its eclectic mix of French and Flemish culture. + The city is famous for its rich history, stunning architecture, and a gastronomic + scene that includes Belgian waffles, chocolates, and a variety of local beers.\\\"}\",\"llm.prompts.9.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919697293788196b01dbbc9dc5fd320\",\"llm.prompts.9.tool_calls.0.name\":\"create_itinerary\"},\"completions\":{\"llm.completions.0.content\":\"I've + created a 7-day itinerary for a culinary adventure in Brussels, Belgium, perfect + for couples:\\n\\n### Trip Title: A Culinary Journey Through Brussels\\n\\n**Day + 1: Arrival and Exploring the Historic Center**\\n- **Stay**: Hotel Amigo\\n- + **Activities**: \\n - Visit the Grand Place\\n - Enjoy lunch at Chez L\xE9on + for moules-frites\\n - Explore the Manneken Pis and Chocopolis for a chocolate + tasting\\n- **Weather**: Overcast, 10.6\xB0C\\n\\n**Day 2: Art \\u0026 Culture + Day**\\n- **Activities**: \\n - Royal Palace of Brussels\\n - Magritte Museum\\n + \ - Parc du Cinquantenaire\\n - European Parliament tour\\n\\n**Day 3: Belgian + Beer and Waffles**\\n- **Activities**:\\n - Beer tasting tour at Brussels + Beer Project\\n - Comic Strip Center\\n - Belgian waffles at Maison Dandoy\\n + \ - Shopping in Sablon district\\n\\n**Day 4: Day Trip to Ghent**\\n- **Activities**:\\n + \ - Train to Ghent\\n - Gravensteen Castle\\n - St. Bavo's Cathedral\\n + \ - Brewery visit\\n\\n**Day 5: Markets and Local Flavors**\\n- **Activities**:\\n + \ - Midi Market visit\\n - Cheese sampling at Fromagerie de la Place\\n - + Explore Marolles district\\n\\n**Day 6: Culinary Delights**\\n- **Activities**:\\n + \ - Cooking class\\n - Visit the Atomium and Mini-Europe\\n\\n**Day 7: Departure + Day**\\n- **Activities**:\\n - Shopping at Galeries Royales Saint-Hubert\\n + \ - Royal Museums of Fine Arts\\n\\n**Travel Tips**: \\n- Purchase a Brussels + Card for discounts.\\n- Pack layers and a waterproof jacket for the weather.\\n\\n**Budget + Estimate**: \u20AC800\\n\\nEnjoy your delicious and romantic European escape + in Brussels!\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273077046,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"01e55a77b2a2dce0\",\"parent_span_id\":\"8f466a6f6bb9d33b\",\"trace_state\":\"\",\"span_name\":\"openai.chat\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai.v1\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.headers\":\"None\",\"llm.is_streaming\":\"false\",\"llm.openai.api_base\":\"https://api.openai.com/v1/\",\"llm.openai.system_fingerprint\":\"fp_51db84afab\",\"llm.request.max_tokens\":\"3000\",\"llm.request.model\":\"gpt-4o-mini\",\"llm.request.structured_output_schema\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\",\"llm.request.temperature\":\"0.700000\",\"llm.request.type\":\"chat\",\"llm.response.id\":\"chatcmpl-CcQAIZ9vs66Ad2yBRePDGlr93GdfC\",\"llm.response.model\":\"gpt-4o-mini-2024-07-18\",\"llm.usage.cache_read_input_tokens\":\"0\",\"llm.usage.completion_tokens\":\"2078\",\"llm.usage.prompt_tokens\":\"579\",\"llm.usage.reasoning_tokens\":\"0\",\"llm.usage.total_tokens\":\"2657\",\"llm.vendor\":\"openai\"},\"duration\":43000,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"You + are an expert travel planner who creates detailed, practical itineraries.\",\"llm.prompts.0.role\":\"system\",\"llm.prompts.1.content\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Brussels.\\n\\nTrip + Details:\\n- Destination: Brussels\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: food\\n- Weather: Current temperature is 10.6\xB0C with overcast + conditions. The forecast for the week includes temperatures ranging from 12.8\xB0C + to 4.1\xB0C, with occasional rain.\\n- Destination Info: Brussels, the capital + of Belgium, is a vibrant city known for its eclectic mix of French and Flemish + culture. The city is famous for its rich history, stunning architecture, and + a gastronomic scene that includes Belgian waffles, chocolates, and a variety + of local beers.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and food interests.\\nEach day should have 3-5 activities + with specific times, locations, and helpful notes.\\n\",\"llm.prompts.1.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"{\\\"trip_title\\\":\\\"A + Culinary Journey Through Brussels\\\",\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC800\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Exploring the Historic Center\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 + AM\\\",\\\"activity\\\":\\\"Check into hotel and freshen up.\\\",\\\"location\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\",\\\"notes\\\":\\\"Moderate hotel + located near the city center.\\\"},{\\\"time\\\":\\\"11:30 AM\\\",\\\"activity\\\":\\\"Visit + the Grand Place, UNESCO World Heritage Site.\\\",\\\"location\\\":\\\"Grand + Place, 1000 Brussels\\\",\\\"notes\\\":\\\"Don't miss the stunning architecture + and the Town Hall.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Chez L\xE9on for traditional moules-frites (mussels and fries).\\\",\\\"location\\\":\\\"Rue + des Bouchers 18, 1000 Brussels\\\",\\\"notes\\\":\\\"A famous spot for seafood + lovers.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Explore the + Manneken Pis statue and its surrounding area.\\\",\\\"location\\\":\\\"Rue + de l'\xC9tuve 46, 1000 Brussels\\\",\\\"notes\\\":\\\"A quirky symbol of Brussels.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a chocolate tasting at Chocopolis.\\\",\\\"location\\\":\\\"Rue + de la Presse 8, 1000 Brussels\\\",\\\"notes\\\":\\\"Sample some of the best + Belgian chocolates.\\\"}],\\\"meals\\\":[\\\"Lunch at Chez L\xE9on\\\",\\\"Dinner + at Le Pain Quotidien, organic fare\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, + Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Art + \\u0026 Culture Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Visit + the Royal Palace of Brussels.\\\",\\\"location\\\":\\\"Place des Palais, 1000 + Brussels\\\",\\\"notes\\\":\\\"Check the opening hours as they can vary.\\\"},{\\\"time\\\":\\\"11:00 + AM\\\",\\\"activity\\\":\\\"Tour the Magritte Museum.\\\",\\\"location\\\":\\\"Rue + de la R\xE9gence 3, 1000 Brussels\\\",\\\"notes\\\":\\\"Features works by + surrealist artist Ren\xE9 Magritte.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Caf\xE9 des Halles for local Belgian dishes.\\\",\\\"location\\\":\\\"Place + de la Bourse 2, 1000 Brussels\\\",\\\"notes\\\":\\\"A lovely caf\xE9 with + a cozy atmosphere.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Stroll + through the Parc du Cinquantenaire.\\\",\\\"location\\\":\\\"Parc du Cinquantenaire, + 1000 Brussels\\\",\\\"notes\\\":\\\"Enjoy the beautiful gardens and archway.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Visit the European Parliament.\\\",\\\"location\\\":\\\"Rue + Wiertz 60, 1047 Brussels\\\",\\\"notes\\\":\\\"Free entry, but check for available + tours.\\\"}],\\\"meals\\\":[\\\"Lunch at Caf\xE9 des Halles\\\",\\\"Dinner + at Restaurant de l'Hotel de Ville, regional specialties\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Belgian + Beer and Waffles\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Join + a beer tasting tour.\\\",\\\"location\\\":\\\"Brussels Beer Project, Rue Antoine + Dansaert 188, 1000 Brussels\\\",\\\"notes\\\":\\\"Sample different Belgian + beers.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch at Delirium + Caf\xE9 for a vast beer selection.\\\",\\\"location\\\":\\\"Impasse de la + Fid\xE9lit\xE9 4, 1000 Brussels\\\",\\\"notes\\\":\\\"Try their famous beer + menu.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Visit the Belgian + Comic Strip Center.\\\",\\\"location\\\":\\\"Rue des Sables 20, 1000 Brussels\\\",\\\"notes\\\":\\\"A + fun take on Belgium's comic strip history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Indulge + in Belgian waffles at Maison Dandoy.\\\",\\\"location\\\":\\\"Rue Charles + Buls 14, 1000 Brussels\\\",\\\"notes\\\":\\\"Known for their delicious Li\xE8ge + waffles.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Explore the + local shops in the Sablon district.\\\",\\\"location\\\":\\\"Sablon, 1000 + Brussels\\\",\\\"notes\\\":\\\"A chic area with antique shops and chocolatiers.\\\"}],\\\"meals\\\":[\\\"Lunch + at Delirium Caf\xE9\\\",\\\"Dinner at Chez L\xE9on (again, for the moules-frites)\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":4,\\\"date\\\":\\\"2023-10-04\\\",\\\"title\\\":\\\"Day + Trip to Ghent\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Take + a train to Ghent.\\\",\\\"location\\\":\\\"Brussels Central Station\\\",\\\"notes\\\":\\\"Trains + run frequently; buy tickets at the station.\\\"},{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Visit + Gravensteen Castle.\\\",\\\"location\\\":\\\"Sint-Veerleplein 11, 9000 Ghent\\\",\\\"notes\\\":\\\"Explore + the medieval castle.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at De Graslei, riverside dining.\\\",\\\"location\\\":\\\"Graslei 7, 9000 + Ghent\\\",\\\"notes\\\":\\\"Enjoy local dishes with a view.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Stroll through the historic center and visit St. + Bavo's Cathedral.\\\",\\\"location\\\":\\\"Sint-Baafsplein 1, 9000 Ghent\\\",\\\"notes\\\":\\\"Home + of the famous Ghent Altarpiece.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Try + local beer at a Ghent brewery.\\\",\\\"location\\\":\\\"Brouwerij Gruut, 9000 + Ghent\\\",\\\"notes\\\":\\\"Unique brewery with its own beer style.\\\"},{\\\"time\\\":\\\"6:00 + PM\\\",\\\"activity\\\":\\\"Return to Brussels.\\\",\\\"location\\\":\\\"Brussels + Central Station\\\",\\\"notes\\\":\\\"Trains run until late.\\\"}],\\\"meals\\\":[\\\"Lunch + at De Graslei\\\",\\\"Dinner at Le Pain Quotidien (again for delicious organic + options)\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"},{\\\"day_number\\\":5,\\\"date\\\":\\\"2023-10-05\\\",\\\"title\\\":\\\"Markets + and Local Flavors\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Visit + the Midi Market (open on Thursdays).\\\",\\\"location\\\":\\\"Place du Midi, + 1060 Brussels\\\",\\\"notes\\\":\\\"A vibrant market with local produce and + street food.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Try + various cheese samples at Fromagerie de la Place.\\\",\\\"location\\\":\\\"Place + du Ch\xE2telain, 1050 Brussels\\\",\\\"notes\\\":\\\"A delightful cheese shop.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Les Brigittines, local cuisine.\\\",\\\"location\\\":\\\"Place + de la Chapelle 5, 1000 Brussels\\\",\\\"notes\\\":\\\"Known for hearty Belgian + dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Explore the + Marolles district and its vintage shops.\\\",\\\"location\\\":\\\"Marolles, + 1000 Brussels\\\",\\\"notes\\\":\\\"Great for thrift shopping and unique finds.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a beer at a local tavern, Caf\xE9 Belga.\\\",\\\"location\\\":\\\"Place + Eug\xE8ne Flagey, 1050 Brussels\\\",\\\"notes\\\":\\\"A lively spot to unwind.\\\"}],\\\"meals\\\":[\\\"Lunch + at Les Brigittines\\\",\\\"Dinner at Chez L\xE9on (to try other menu items)\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":6,\\\"date\\\":\\\"2023-10-06\\\",\\\"title\\\":\\\"Culinary + Delights\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Take + a cooking class to learn Belgian cuisine.\\\",\\\"location\\\":\\\"Brussels + Cooking Classes, Rue des Bouchers 9, 1000 Brussels\\\",\\\"notes\\\":\\\"Pre-booking + is recommended.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Enjoy + the meal you've prepared during the class.\\\",\\\"location\\\":\\\"Brussels + Cooking Classes\\\",\\\"notes\\\":\\\"A unique lunch experience.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Visit the Atomium, an iconic building.\\\",\\\"location\\\":\\\"Avenue + de l'Atomium, 1020 Brussels\\\",\\\"notes\\\":\\\"Check out the exhibition + inside.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Explore Mini-Europe, + right next to Atomium.\\\",\\\"location\\\":\\\"Bruparck, 1020 Brussels\\\",\\\"notes\\\":\\\"A + miniature park with famous European landmarks.\\\"}],\\\"meals\\\":[\\\"Lunch + at cooking class\\\",\\\"Dinner at La Roue d'Or, known for local favorites\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":7,\\\"date\\\":\\\"2023-10-07\\\",\\\"title\\\":\\\"Departure + Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Last-minute + shopping in the Galeries Royales Saint-Hubert.\\\",\\\"location\\\":\\\"Galeries + Royales Saint-Hubert, 1000 Brussels\\\",\\\"notes\\\":\\\"Beautiful shopping + arcade.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit the + Royal Museums of Fine Arts of Belgium.\\\",\\\"location\\\":\\\"Rue de la + R\xE9gence 3, 1000 Brussels\\\",\\\"notes\\\":\\\"Explore the vast collection + of art.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch at Le + Pain Quotidien, a final taste of organic dishes.\\\",\\\"location\\\":\\\"Multiple + locations\\\",\\\"notes\\\":\\\"Great ambiance for your last meal.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Check out from hotel and head to the airport.\\\",\\\"location\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\",\\\"notes\\\":\\\"Plan for travel + time to airport.\\\"}],\\\"meals\\\":[\\\"Lunch at Le Pain Quotidien\\\",\\\"Dinner + on the flight\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, Rue de l'Amigo 1-3, + 1000 Brussels\\\"}],\\\"travel_tips\\\":[\\\"Purchase a Brussels Card for + discounts on entrance fees and public transport.\\\",\\\"Always try to learn + a few basic French or Flemish phrases, it's appreciated by locals.\\\",\\\"Keep + an umbrella or raincoat handy due to unpredictable weather.\\\"],\\\"packing_suggestions\\\":[\\\"Comfortable + walking shoes for exploring the city.\\\",\\\"Layers to adjust to changing + temperatures throughout the day.\\\",\\\"A light waterproof jacket or umbrella + for occasional rain.\\\"]}\",\"llm.completions.0.finish_reason\":\"stop\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273076537,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"8f466a6f6bb9d33b\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"create_itinerary.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"create_itinerary\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":43510,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"create_itinerary\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273073000,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"05f6c52415ea7bac\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"132\",\"llm.usage.prompt_tokens\":\"2060\",\"llm.usage.total_tokens\":\"2192\",\"llm.vendor\":\"openai\"},\"duration\":3536,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.prompts.7.role\":\"assistant\",\"llm.prompts.7.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.7.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696ed14081968f4ffc1c02b6bb46\",\"llm.prompts.7.tool_calls.0.name\":\"get_destination_info\",\"llm.prompts.8.content\":\"status='success' + message='Retrieved information for Brussels' info=DestinationInfo(title='Brussels', + summary='Federal region of Belgium including the capital', extract='Brussels, + officially the Brussels-Capital Region, is a region of Belgium comprising + 19 municipalities, including the City of Brussels, which is the capital of + Belgium. The Brussels-Capital Region is located in the central portion of + the country. It is a part of both the French Community of Belgium and the + Flemish Community, and is separate from the Flemish Region (Flanders), within + which it forms an enclave, and the Walloon Region (Wallonia), located less + than 4 kilometres (2.5\\\\xa0mi) to the south.')\",\"llm.prompts.8.role\":\"tool\",\"llm.prompts.8.tool_call_id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"budget\\\":\\\"moderate\\\",\\\"interests\\\":\\\"food\\\",\\\"weather_info\\\":\\\"Current + temperature is 10.6\xB0C with overcast conditions. The forecast for the week + includes temperatures ranging from 12.8\xB0C to 4.1\xB0C, with occasional + rain.\\\",\\\"destination_details\\\":\\\"Brussels, the capital of Belgium, + is a vibrant city known for its eclectic mix of French and Flemish culture. + The city is famous for its rich history, stunning architecture, and a gastronomic + scene that includes Belgian waffles, chocolates, and a variety of local beers.\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_eSompCv9cwfQozN9rREMSvt1\",\"llm.completions.0.tool_calls.0.name\":\"create_itinerary\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273071226,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"124b20f6c218667c\",\"parent_span_id\":\"a6c189db4bfc7645\",\"trace_state\":\"\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.requests\",\"scope_version\":\"0.59b0\",\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://en.wikipedia.org/api/rest_v1/page/summary/Brussels\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"duration\":1772,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273070720,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"a6c189db4bfc7645\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"get_destination_info.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"get_destination_info\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":2279,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"get_destination_info\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273069960,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"ef8c2c7c4619c9ed\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"18\",\"llm.usage.prompt_tokens\":\"1890\",\"llm.usage.total_tokens\":\"1908\",\"llm.vendor\":\"openai\"},\"duration\":758,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\",\"llm.prompts.5.role\":\"assistant\",\"llm.prompts.5.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.prompts.5.tool_calls.0.id\":\"fc_002efcb3837ca5ad006919696c3d4481969155ab11359357d1\",\"llm.prompts.5.tool_calls.0.name\":\"get_weather_forecast\",\"llm.prompts.6.content\":\"status='success' + message='Weather forecast retrieved for Brussels' forecast=WeatherForecast(location='Brussels', + latitude=50.8465573, longitude=4.351697, current_temperature=10.6, current_conditions='Overcast', + forecast_days=[DailyForecast(date='2025-11-16', temp_max=12.8, temp_min=6.5, + precipitation=0.1), DailyForecast(date='2025-11-17', temp_max=9.3, temp_min=5.4, + precipitation=4.1), DailyForecast(date='2025-11-18', temp_max=6.3, temp_min=3.7, + precipitation=0.2), DailyForecast(date='2025-11-19', temp_max=5.6, temp_min=2.4, + precipitation=8.7), DailyForecast(date='2025-11-20', temp_max=5.2, temp_min=0.6, + precipitation=0.0), DailyForecast(date='2025-11-21', temp_max=6.0, temp_min=0.2, + precipitation=0.0), DailyForecast(date='2025-11-22', temp_max=4.1, temp_min=-0.0, + precipitation=0.4)])\",\"llm.prompts.6.role\":\"tool\",\"llm.prompts.6.tool_call_id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"destination_name\\\":\\\"Brussels\\\"}\",\"llm.completions.0.tool_calls.0.id\":\"call_RPiJsOQu53UTsFhjQ91Sap6p\",\"llm.completions.0.tool_calls.0.name\":\"get_destination_info\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273069020,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"0218eda7b3b9bb1d\",\"parent_span_id\":\"aca85c1c5e5a0b71\",\"trace_state\":\"\",\"span_name\":\"GET\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.requests\",\"scope_version\":\"0.59b0\",\"span_attributes\":{\"http.method\":\"GET\",\"http.status_code\":\"200\",\"http.url\":\"https://api.open-meteo.com/v1/forecast?latitude=50.8465573\\u0026longitude=4.351697\\u0026current=temperature_2m%2Crelative_humidity_2m%2Cwind_speed_10m%2Cweather_code\\u0026daily=temperature_2m_max%2Ctemperature_2m_min%2Cprecipitation_sum\\u0026timezone=auto\\u0026forecast_days=7\",\"llm.agent.name\":\"Travel + Planner Agent\"},\"duration\":936,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273068516,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"aca85c1c5e5a0b71\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"get_weather_forecast.tool\",\"span_kind\":\"SPAN_KIND_INTERNAL\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.tool.name\":\"get_weather_forecast\",\"llm.vendor\":\"openai_agents\",\"traceloop.span.kind\":\"tool\"},\"duration\":1443,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{},\"completions\":{\"llm.completions.tool.name\":\"get_weather_forecast\",\"llm.completions.tool.strict_json_schema\":\"true\",\"llm.completions.tool.type\":\"FunctionTool\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763273065021,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"7c4695a6beca7e4d\",\"parent_span_id\":\"0860f990bbf0d202\",\"trace_state\":\"\",\"span_name\":\"openai.response\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai_agents\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.operation.name\":\"response\",\"llm.request.functions.0.description\":\"Search + for travel destinations by region or subregion using REST Countries API.\",\"llm.request.functions.0.name\":\"search_destinations\",\"llm.request.functions.0.parameters\":\"{\\\"properties\\\": + {\\\"region\\\": {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Region + to search (e.g., \\\\\\\"Europe\\\\\\\", \\\\\\\"Asia\\\\\\\", \\\\\\\"Americas\\\\\\\")\\\", + \\\"title\\\": \\\"Region\\\", \\\"type\\\": \\\"string\\\"}, \\\"subregion\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Subregion to search (e.g., + \\\\\\\"Southern Europe\\\\\\\", \\\\\\\"Southeast Asia\\\\\\\")\\\", \\\"title\\\": + \\\"Subregion\\\", \\\"type\\\": \\\"string\\\"}}, \\\"title\\\": \\\"search_destinations_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false, \\\"required\\\": + [\\\"region\\\", \\\"subregion\\\"]}\",\"llm.request.functions.1.description\":\"Get + coordinates for a location using Nominatim (OpenStreetMap) API.\",\"llm.request.functions.1.name\":\"get_location_coordinates\",\"llm.request.functions.1.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the city or location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"location_name\\\"], \\\"title\\\": \\\"get_location_coordinates_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.2.description\":\"Get + current weather and 7-day forecast using Open-Meteo API (no API key required).\",\"llm.request.functions.2.name\":\"get_weather_forecast\",\"llm.request.functions.2.parameters\":\"{\\\"properties\\\": + {\\\"location_name\\\": {\\\"description\\\": \\\"Name of the location\\\", + \\\"title\\\": \\\"Location Name\\\", \\\"type\\\": \\\"string\\\"}, \\\"latitude\\\": + {\\\"description\\\": \\\"Latitude coordinate\\\", \\\"title\\\": \\\"Latitude\\\", + \\\"type\\\": \\\"number\\\"}, \\\"longitude\\\": {\\\"description\\\": \\\"Longitude + coordinate\\\", \\\"title\\\": \\\"Longitude\\\", \\\"type\\\": \\\"number\\\"}}, + \\\"required\\\": [\\\"location_name\\\", \\\"latitude\\\", \\\"longitude\\\"], + \\\"title\\\": \\\"get_weather_forecast_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.functions.3.description\":\"Get + information about a destination from Wikipedia API.\",\"llm.request.functions.3.name\":\"get_destination_info\",\"llm.request.functions.3.parameters\":\"{\\\"properties\\\": + {\\\"destination_name\\\": {\\\"description\\\": \\\"Name of the destination\\\", + \\\"title\\\": \\\"Destination Name\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": + [\\\"destination_name\\\"], \\\"title\\\": \\\"get_destination_info_args\\\", + \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": false}\",\"llm.request.functions.4.description\":\"Calculate + distance and estimated flight time between two locations.\\nUses Haversine + formula for distance calculation.\",\"llm.request.functions.4.name\":\"calculate_travel_distance\",\"llm.request.functions.4.parameters\":\"{\\\"properties\\\": + {\\\"from_location\\\": {\\\"description\\\": \\\"Starting location name\\\", + \\\"title\\\": \\\"From Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"to_location\\\": + {\\\"description\\\": \\\"Destination location name\\\", \\\"title\\\": \\\"To + Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"from_lat\\\": {\\\"description\\\": + \\\"Starting latitude\\\", \\\"title\\\": \\\"From Lat\\\", \\\"type\\\": + \\\"number\\\"}, \\\"from_lon\\\": {\\\"description\\\": \\\"Starting longitude\\\", + \\\"title\\\": \\\"From Lon\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lat\\\": + {\\\"description\\\": \\\"Destination latitude\\\", \\\"title\\\": \\\"To + Lat\\\", \\\"type\\\": \\\"number\\\"}, \\\"to_lon\\\": {\\\"description\\\": + \\\"Destination longitude\\\", \\\"title\\\": \\\"To Lon\\\", \\\"type\\\": + \\\"number\\\"}}, \\\"required\\\": [\\\"from_location\\\", \\\"to_location\\\", + \\\"from_lat\\\", \\\"from_lon\\\", \\\"to_lat\\\", \\\"to_lon\\\"], \\\"title\\\": + \\\"calculate_travel_distance_args\\\", \\\"type\\\": \\\"object\\\", \\\"additionalProperties\\\": + false}\",\"llm.request.functions.5.description\":\"Create a detailed day-by-day + travel itinerary using AI.\",\"llm.request.functions.5.name\":\"create_itinerary\",\"llm.request.functions.5.parameters\":\"{\\\"properties\\\": + {\\\"destination\\\": {\\\"description\\\": \\\"Main destination for the trip\\\", + \\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, \\\"duration_days\\\": + {\\\"description\\\": \\\"Number of days for the trip\\\", \\\"title\\\": + \\\"Duration Days\\\", \\\"type\\\": \\\"integer\\\"}, \\\"budget\\\": {\\\"description\\\": + \\\"Budget level (budget, moderate, luxury)\\\", \\\"title\\\": \\\"Budget\\\", + \\\"type\\\": \\\"string\\\"}, \\\"interests\\\": {\\\"description\\\": \\\"Traveler + interests (e.g., food, history, nature)\\\", \\\"title\\\": \\\"Interests\\\", + \\\"type\\\": \\\"string\\\"}, \\\"weather_info\\\": {\\\"default\\\": \\\"\\\", + \\\"description\\\": \\\"Weather forecast information (optional)\\\", \\\"title\\\": + \\\"Weather Info\\\", \\\"type\\\": \\\"string\\\"}, \\\"destination_details\\\": + {\\\"default\\\": \\\"\\\", \\\"description\\\": \\\"Additional destination + details (optional)\\\", \\\"title\\\": \\\"Destination Details\\\", \\\"type\\\": + \\\"string\\\"}}, \\\"required\\\": [\\\"destination\\\", \\\"duration_days\\\", + \\\"budget\\\", \\\"interests\\\", \\\"weather_info\\\", \\\"destination_details\\\"], + \\\"title\\\": \\\"create_itinerary_args\\\", \\\"type\\\": \\\"object\\\", + \\\"additionalProperties\\\": false}\",\"llm.request.model\":\"gpt-4o-2024-08-06\",\"llm.request.temperature\":\"1.000000\",\"llm.request.top_p\":\"1.000000\",\"llm.request.type\":\"response\",\"llm.usage.completion_tokens\":\"34\",\"llm.usage.prompt_tokens\":\"1577\",\"llm.usage.total_tokens\":\"1611\",\"llm.vendor\":\"openai\"},\"duration\":3494,\"status_code\":\"STATUS_CODE_OK\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"Help + me plan a vacation in Europe for couples. I'm interested in food.\",\"llm.prompts.0.role\":\"user\",\"llm.prompts.1.role\":\"assistant\",\"llm.prompts.1.tool_calls.0.arguments\":\"{\\\"region\\\":\\\"Europe\\\",\\\"subregion\\\":\\\"\\\"}\",\"llm.prompts.1.tool_calls.0.id\":\"fc_002efcb3837ca5ad0069196964b478819693d459e78c68479c\",\"llm.prompts.1.tool_calls.0.name\":\"search_destinations\",\"llm.prompts.2.content\":\"status='success' + message='Found 10 destinations in Europe' countries=[CountryInfo(name='Serbia', + capital='Belgrade', region='Europe', subregion='Southeast Europe', population=6567783, + currencies=['RSD'], languages=['Serbian'], timezones=['UTC+01:00']), CountryInfo(name='Slovakia', + capital='Bratislava', region='Europe', subregion='Central Europe', population=5413813, + currencies=['EUR'], languages=['Slovak'], timezones=['UTC+01:00']), CountryInfo(name='Estonia', + capital='Tallinn', region='Europe', subregion='Northern Europe', population=1369995, + currencies=['EUR'], languages=['Estonian'], timezones=['UTC+02:00']), CountryInfo(name='Gibraltar', + capital='Gibraltar', region='Europe', subregion='Southern Europe', population=38000, + currencies=['GIP'], languages=['English'], timezones=['UTC+01:00']), CountryInfo(name='Ireland', + capital='Dublin', region='Europe', subregion='Northern Europe', population=5458600, + currencies=['EUR'], languages=['English', 'Irish'], timezones=['UTC']), CountryInfo(name='Belgium', + capital='Brussels', region='Europe', subregion='Western Europe', population=11825551, + currencies=['EUR'], languages=['German', 'French', 'Dutch'], timezones=['UTC+01:00']), + CountryInfo(name='Kosovo', capital='Pristina', region='Europe', subregion='Southeast + Europe', population=1585566, currencies=['EUR'], languages=['Albanian', 'Serbian'], + timezones=['UTC+01:00']), CountryInfo(name='Ukraine', capital='Kyiv', region='Europe', + subregion='Eastern Europe', population=32862000, currencies=['UAH'], languages=['Ukrainian'], + timezones=['UTC+02:00']), CountryInfo(name='Netherlands', capital='Amsterdam', + region='Europe', subregion='Western Europe', population=18100436, currencies=['EUR'], + languages=['Dutch'], timezones=['UTC+01:00']), CountryInfo(name='Moldova', + capital='Chi\u0219in\u0103u', region='Europe', subregion='Eastern Europe', + population=2749076, currencies=['MDL'], languages=['Romanian'], timezones=['UTC+02:00'])] + count=10\",\"llm.prompts.2.role\":\"tool\",\"llm.prompts.2.tool_call_id\":\"call_x9eEzVdEfljWuZYhyjs2UbYT\",\"llm.prompts.3.role\":\"assistant\",\"llm.prompts.3.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\"}\",\"llm.prompts.3.tool_calls.0.id\":\"fc_002efcb3837ca5ad00691969672f28819697a09a736843dacb\",\"llm.prompts.3.tool_calls.0.name\":\"get_location_coordinates\",\"llm.prompts.4.content\":\"status='success' + message='Coordinates found for Brussels' coordinates=LocationCoordinates(location_name='Brussels', + latitude=50.8465573, longitude=4.351697, country='Belgi\xEB / Belgique / Belgien', + display_name='Bruxelles - Brussel, Brussel-Hoofdstad - Bruxelles-Capitale, + R\xE9gion de Bruxelles-Capitale - Brussels Hoofdstedelijk Gewest, Belgi\xEB + / Belgique / Belgien')\",\"llm.prompts.4.role\":\"tool\",\"llm.prompts.4.tool_call_id\":\"call_tYzh1OZDdDLftvCUnNhvaqJP\"},\"completions\":{\"llm.completions.0.finish_reason\":\"tool_calls\",\"llm.completions.0.role\":\"assistant\",\"llm.completions.0.tool_calls.0.arguments\":\"{\\\"location_name\\\":\\\"Brussels\\\",\\\"latitude\\\":50.8465573,\\\"longitude\\\":4.351697}\",\"llm.completions.0.tool_calls.0.id\":\"call_3lqSWvQ36PrWiDz4YFeNWHTq\",\"llm.completions.0.tool_calls.0.name\":\"get_weather_forecast\"},\"input\":\"\",\"output\":\"\"}],\"page_size\":10,\"total_results\":54,\"next_cursor\":\"1763273065021\"}}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:22 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchSpans.test_search_spans_with_operation.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchSpans.test_search_spans_with_operation.yaml new file mode 100644 index 0000000..9937b80 --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchSpans.test_search_spans_with_operation.yaml @@ -0,0 +1,876 @@ +interactions: +- request: + body: '{"filters":[],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":1000}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '190' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/traces/root-spans + response: + body: + string: '{"root_spans":{"data":[{"environment":"prd","timestamp":1763273059770,"trace_id":"c4c7e548e1febe34757c208205caa53e","span_id":"6b3a38f23a58e2ec","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":68638,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":31096,"span_count":16},{"environment":"prd","timestamp":1763272977019,"trace_id":"f53581d7de2b03275fad361fd5a2a9fe","span_id":"51abd109e3f6fc45","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":80747,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":8650,"span_count":20},{"environment":"prd","timestamp":1763272914648,"trace_id":"83ba2d50d52cac29534deeb6f0197b60","span_id":"2c86398dc9615c3a","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":60364,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":25326,"span_count":26},{"environment":"prd","timestamp":1763027558008,"trace_id":"29fb03129fc8a5aeabd87def55435f43","span_id":"b205122711ccafe4","parent_span_id":"","trace_state":"","span_name":"traceloop_hub.chat","span_kind":"SPAN_KIND_CLIENT","service_name":"unknown_service","resource_attributes":{"service.name":"unknown_service","telemetry.sdk.language":"rust","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"0.27.1"},"scope_name":"traceloop_hub","scope_version":"","span_attributes":{"llm.request.frequency_penalty":"0.000000","llm.request.model":"gpt-5.1","llm.request.presence_penalty":"0.000000","llm.request.type":"chat","llm.vendor":"openai"},"duration":1312,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{"llm.prompts.0.content":"[{\"type\":\"text\",\"text\":\"explain + who are you and what can you do in one sentence\"}]","llm.prompts.0.role":"user"},"completions":{},"input":"","output":"","total_tokens":0,"span_count":2},{"environment":"prd","timestamp":1762953417208,"trace_id":"e2871b06600cb44f772523756bf99ad3","span_id":"0fd131a789f73d47","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4730,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye Opentelemetry scallywag refuse + to sport spyglasses?\\n\\nBecause they didn''t be wantin'' to be traced! Arrr!\\n\\n + (o_o)\\n\\nHic\\n\\nComment on my pie chart to go far in\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762953408597,"trace_id":"24ea21374323feef794238646e477d79","span_id":"de6df20819872a2c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3531,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they be always trackin'' their doubloons!\\n\\n (vessels)\\n\\n\\u200b\\n\\nKudos + and notes\\n\\nThanks to Challengepost\\n\\n\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762953399257,"trace_id":"8e56c0da1bbc9d38f850465b16f576c8","span_id":"927f3379364fa4a5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5194,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Ye scallywags, why did Opentelemetry go to + therapy?\\n\\nBecause it couldn''t decide what to plunder next! Arrr!\\n\\n + :''(\\n\\nThis week in the community\\n\\nWe\\u2019ll start this week\\u2019s + newsletter with\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762953388540,"trace_id":"7b10976a382a4da03a65d0fe62a577c2","span_id":"ad2847a9be3e29ae","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5514,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry crossin'' the road? + To be tracin'' the chicken''s course! Arrr!\\n\\n Oh, I guess I''m talkin'' + about Service Ubiquity Syb\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762953379719,"trace_id":"bcd7b1d8768b317dd242bd94eb7408b3","span_id":"3e118324957da813","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4335,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the opentelemetry project gettin'' + invited to all the parties? ''Cause it always knows how to trace the best + route to the dance floor, matey! Arrr!\\n\\n Could do with some more like + these, the game is fun but too few (\"","total_tokens":600,"span_count":34},{"environment":"prd","timestamp":1762953370495,"trace_id":"3b4bb9514dd569958055552049300802","span_id":"cba3c553393323d0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4266,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer part + ways with their matey? ''Twas unable to handle the cargo of their relationship! + Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nDocker Templates\\n\\nDocker''s\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762953353515,"trace_id":"e7d9bb89558607369072c3c8bd2f12c9","span_id":"4912b5b0e5d356f2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":12292,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle all the loot they were + lugging around! Arrrr!\\n\\n (Ayo, worth looting indeed! ) Nom nom nom (I''m\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762953344499,"trace_id":"30ad2430df17b657c6818f02b0994390","span_id":"86985a4e525f41f0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4048,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry matey break up + with their pirate partner? Because they couldn''t handle all the tracing and + metrics in the pirate ship! Arrr!\\n\\n Why did the https://esa.forholidays.net + friend stop talking to their straw\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762953334595,"trace_id":"56083b53bddc3528a00b43a81eb2e878","span_id":"93ebe98d0f1059c0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4244,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go to Davy Jones'' locker? Because he be keepin'' tryin'' to trace his doubloons! + Arrr!\\n\\n Thanks for the help! https://ocp.opentelemetry.io/faqs/\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762953325299,"trace_id":"ed1db63d39344f6e38c4d065061cee19","span_id":"816b8f401d905b8a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5086,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Cause it couldn''t bear their booty! Arrrgh!\\n\\n And now the joke is over. + Take that\\u2026 open telemetry!\\n\\nJust rolled out\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762953316987,"trace_id":"81efba5ce68e779bb5f3b0d31b47c823","span_id":"8d1a59600eb7f38e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3603,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag abandon OpenTelemetry? + ''Twas unable to bear their loot! Arrr!\\n\\n \\n\\u2014 Delan Derderian + (@delander) October 1, \"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762953307023,"trace_id":"62e0fbbb0a71525c8a8e9d557b1ad9ea","span_id":"4137788d234823f4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3839,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + Because every time they tried to plunder their loot, their software kept tracing + it back to the buried treasure! Arr!\\n\\n I wipe my blade over ye mustache. + I''m a Scot pirate scally\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762934412201,"trace_id":"49d5d6b3daf2664515b02429bc8ae605","span_id":"cce1f2187e8a4891","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3435,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with *************? + Because it kept trackin'' their every step! Arrr!\\n\\n \\u200b \\u200b \\uf101 + Show more stamp\"","total_tokens":438,"span_count":34},{"environment":"prd","timestamp":1762934406504,"trace_id":"fa87b605fb61bba992f4cfcd78eebc80","span_id":"c4b3f6bb033a5125","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2825,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler part ways with Opentelemetry? + ''Twas unable to handle the vast treasure trove of baggage it brought to the + arrr-lationship! Arrr!\\n\\n \\ud83d\\udcaa\\n\\nEmbrace the maritime spirit + of love: wait until Cupid\\u2019s\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762934399232,"trace_id":"df91903099d69a861f279b13a93a7979","span_id":"4840f6dd685aa774","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4232,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + every time they tried to track their doubloons, it caused a massive loop in + their treasure chest!\\n\\n\"","total_tokens":530,"span_count":34},{"environment":"prd","timestamp":1762934391128,"trace_id":"c4f4fe98db3079d1a865b766efb3aa5b","span_id":"fc77313f2cbf4477","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4692,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their *****? Because they couldn''t be handlin'' the constant tracing + and monitoring of their pirate ship! Arrr!\\n\\n [more about this one] https://openthread.biz/h3ers\\n\\n\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762934384071,"trace_id":"bc71b081e3fcc54add49df4a47e2b4e3","span_id":"61143bf3b7c2f019","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3977,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag go broke after + implementin'' Opentelemetry? Because every time they tried to trace their + expenses, they got lost in the instrumentation, ye landlubber!\\n\\n 2A @ + 100wkw\\n\\n\\t\\t #ubitux \\n\\t\\t \"","total_tokens":604,"span_count":34},{"environment":"prd","timestamp":1762934375395,"trace_id":"2b3fd2cd74288edb50227df93d95271e","span_id":"a0f393b0add45f81","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6004,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the ********* abandon *************? + Because it couldn''t bear the heavy cargo it was lugging around! Arrr!\\n\\n + Pirately best practiced in its most traditional sense, open governance. This + is why\"","total_tokens":490,"span_count":34},{"environment":"prd","timestamp":1762934361936,"trace_id":"162f9b44b57248c646cd5ba3f2e8ce5f","span_id":"9a0b32020700160b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8290,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the ********* goin'' broke tryin'' + to implement OpenTelemetry?\\nBecause they be spendin'' all their doubloons + on traces! Arrr!\\n\\n Piratenspuren!\\n\\nPosted in Software engineering + . Tagged with open-te\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762934352831,"trace_id":"793170d111beb46174b72352dfe9fd3f","span_id":"87bb449951820596","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6517,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ************* go to therapy, *****? + Because it couldn''t stop tracing its troubles back to its wee childhood days! + Arrrgh!\\n\\n I hate myself...)\\ndatingcrew **********: And\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762934346981,"trace_id":"73786765ef3c35353a66af6d7e608c9d","span_id":"2e34e64e4aeca7f7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2886,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy knave bring a spyglass + to the opentelemetry conference? \\n\\nBecause they heard they needed to trace + all the critters!arr!\\n\\n \\n\\n---\\n\\n^(*ascii-grin*)\\n^(*Originating + short story / jokes\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762934339515,"trace_id":"37fbcb8957a47e35b3fec75c15cf790b","span_id":"6e9ea6ac8651bfd3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3725,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the OpenTelemetry scallywag go broke? + Because they be always tracing their doubloons!\\n\\n #voltdays20\\n\\nDue + to an audio production error, I removed the\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762882544136,"trace_id":"6bbb8403d2eb125a06fa8ce4c556d2fe","span_id":"60547c73a0213dbf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5856,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler go + broke?\\n\\nBecause he couldn''t track his doubloons!\\n\\n\\ud83c\\udff4\\u200d\\u2620\\ufe0f\\ud83e\\udd9c\\n\\nDeploy + to *******\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762876898831,"trace_id":"91633fe5b739e62fc5bd0040d1a1d43d","span_id":"c534e161feec79f1","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2153,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ***************** + ever trust OpenTelemetry?\\n\\nBecause they think it''s just TraceLoop trying + to find a new way to get in a continuous monitoring circle!\"","total_tokens":106,"span_count":6},{"environment":"prd","timestamp":1762876886104,"trace_id":"902e7a664052d45e02f89a27ff35d159","span_id":"10a62397b767998d","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2756,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + opentelemetry ********** play hide and seek?\\n\\nBecause good luck hiding + when they''re constantly tracking everything!\"","total_tokens":94,"span_count":6},{"environment":"prd","timestamp":1762876158512,"trace_id":"03a9b680790bce44e3205f4aab4d80e6","span_id":"d0d114971be5eb3d","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":1670,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust the Traceloop Opentelemetry?\\n\\nBecause they think it might start + tracing back their coffee breaks!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762876152058,"trace_id":"4af9731d3e1f60eef6cc36725b38c91c","span_id":"6f9d3b1acdcf5881","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2945,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + ********* play hide and seek with OpenTelemetry?\\n\\nBecause no matter where + they hide, OpenTelemetry always traces them!\"","total_tokens":102,"span_count":6},{"environment":"prd","timestamp":1762876146566,"trace_id":"01230af98664970762df9e738b0cefa8","span_id":"25639527fdcc632e","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2196,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + use TraceLoop OpenTelemetry to propose marriage?\\n\\nBecause it always traces + back the hidden errors and performance issues they''ve been hiding!\"","total_tokens":100,"span_count":6},{"environment":"prd","timestamp":1762876141358,"trace_id":"dae83ddb05d1de6f46bee25b25f8eb85","span_id":"407e6411343893ac","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":1944,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust TraceLoop OpenTelemetry?\\n\\nBecause they always feel like they''re + being traced!\"","total_tokens":82,"span_count":6},{"environment":"prd","timestamp":1762876133702,"trace_id":"7969294d9e5e91de2f08baf9f0b8ea1c","span_id":"91732e966d20ccbf","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":4108,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ****************** + use traceloop opentelemetry when they''re playing hide and seek?\\n\\nBecause + they don''t want traces of their hiding spots to be found!\"","total_tokens":110,"span_count":6},{"environment":"prd","timestamp":1762876116604,"trace_id":"a0d2158649575536608bc0801de67481","span_id":"0450db6a479748b0","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":4249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + and opentelemetry ever play hide and seek?\\n\\nBecause good luck hiding when + you''re always being traced.\"","total_tokens":96,"span_count":6},{"environment":"prd","timestamp":1762875538327,"trace_id":"7b50297899fe3dd4f2aeab46b39adf55","span_id":"a8f313b71de30a37","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2577,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like tracing with TraceLoop OpenTelemetry?\\n\\nBecause they say it has too + many \\\"strings\\\" attached!\"","total_tokens":90,"span_count":6},{"environment":"prd","timestamp":1762875532912,"trace_id":"f211ccc3649ce49ebb5f379f389245e6","span_id":"5e14007190a04996","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2400,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + ***** play hide and seek?\\n\\nBecause good luck hiding when opentelemetry + is tracking every move!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762875527381,"trace_id":"a4d80e8a38620f8057e8b82f55442d1e","span_id":"ce4b33380523f3ec","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2096,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t trace + loop ********** ever get lost?\\n\\nBecause with opentelemetry, they''ve always + got their traces covered!\"","total_tokens":88,"span_count":6},{"environment":"prd","timestamp":1762875518407,"trace_id":"f6d85a873cd71f3178011c78bfe3f31f","span_id":"363e4314cd6bedaf","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1427,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust traceloop opentelemetry?\\n\\nBecause they think it has too many \\\"trace\\\" + issues!\"","total_tokens":90,"span_count":6},{"environment":"prd","timestamp":1762875510595,"trace_id":"27723863f1f31912e557484b35028a7f","span_id":"444802a07e4a2240","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1668,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like the Traceloop Opentelemetry?\\n\\nBecause every time they use it, they + feel like they''re going in circles!\"","total_tokens":100,"span_count":6},{"environment":"prd","timestamp":1762875504586,"trace_id":"778cff9b7ce236170a093da70db72cc1","span_id":"e8c2a4919d560073","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2141,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + use traceloop opentelemetry at the beach?\\n\\nBecause they don''t want to + catch any bugs!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762875499105,"trace_id":"3e16f38a873585cd72aea85e282a8569","span_id":"1dc81f047f1fdc93","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1920,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ******* + use opentelemetry?\\n\\nBecause they always lose track of the punchline!\"","total_tokens":80,"span_count":6},{"environment":"prd","timestamp":1762875492559,"trace_id":"422301f6380204a39d5be637936752ff","span_id":"a0fc5826acd35a09","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2574,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like ********* opentelemetry for their morning coffee?\\n\\nBecause no matter + how many traces they put in, they still can''t find the source of their lack + of energy!\"","total_tokens":120,"span_count":6},{"environment":"prd","timestamp":1762875134977,"trace_id":"07947259563a8ca28f0e127d89836e79","span_id":"22925979afdc12b8","parent_span_id":"","trace_state":"","span_name":"pirate_joke_generator.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_1234","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"pirate_joke_generator","traceloop.span.kind":"workflow","traceloop.workflow.name":"pirate_joke_generator"},"duration":6127,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog break up with *************? + Because it couldn''t handle their plunder!\\n\\n\"","total_tokens":458,"span_count":18},{"environment":"prd","timestamp":1762865984713,"trace_id":"60b71343496d5de8175c102f436593e7","span_id":"7c041e220382472b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3614,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr *****, why did the opentelemetry API + cross the plank? To follow the chicken''s trail and gather metrics on its + voyage! Arrr!\\n\\n **************************\\u2026\\u200b\\ufeff\\n\\nAPI + Mode hides the\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762865976109,"trace_id":"44e199b6d766f3f71934417283c95ecd","span_id":"69b247c62f315587","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3565,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did ************* break up with + her *****? Because he couldn''t handle all her traces and booty! Arrr!\\n\\n\\ud83e\\udd23\\ud83e\\udd23\\n\\nlol. + 5% of you easily got\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762865964100,"trace_id":"bfb165bd79e9a09e9a9634597ef718c4","span_id":"de73baebd89cb9f3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6276,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Avast ye! Why did the Opentelemetry ******** + refuse to go to any parrrties? Because they were too worried about getting + traced! Arrr!\\n\\n ~\\u2026\\u2026\\n\\nuser-generator\\n\\nJoke generation + and share with rave plugin\\n\\nGenerating jokes\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762865956217,"trace_id":"28112445370e9ec3fd0bed9c132367a4","span_id":"0663470b333c77ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2892,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag take up skydivin'' + with Opentelemetry? Because they wanted to trace their code all the way down + to **********'' locker! Arrr!\\n\\n \\uf602\\n\\nYou might consider your short + rope joke in regard to AMQP\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762865947576,"trace_id":"76a845925ced5a08aa78b3cbb21c1ab9","span_id":"72b847e4cba0681e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3768,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project go to therapy? + Because it couldn''t stop tracing its issues back to its wee beginnings! Arrr!\\n\\n + \\ud83d\\ude02\\n\\nIs there a video tutorial about getting started with dynamic + tracing?\\n\\nIs\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762860688164,"trace_id":"bf628477f73b61c52d3c94e0109e3be7","span_id":"ad85c8de496d80c9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4070,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project graduate + at the top of its class? Because it always knows how to trace a good booty! + Arrr!\\n\\n \\n \\u2014 John Hawkes \\ud83c\\udf29 (@hawkesi) January \"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860680825,"trace_id":"b41f432c9d77df8b4d0bb5c2a10d6026","span_id":"2adffbdbf1796562","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2860,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry pirate part ways + with their abacus? Because it couldn''t handle the treasure map.\\n\\n\"","total_tokens":410,"span_count":34},{"environment":"prd","timestamp":1762860660182,"trace_id":"94636d1159e6fbf1b42336a5229e403d","span_id":"1d2434a64b0eb05c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3154,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up wit'' OpenTelemetry? + ''Cause it couldn''t handle their loot! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f!^\\u2693^\\n\\nwhat\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762860651651,"trace_id":"352069d7d78790e0f41ec2446d379d29","span_id":"053f289f3c3593c2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2848,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their matey? Because they couldn''t handle the constant tracing + and monitoring of their ship-shape relationship, arrr!\\n\\n #opentelemetry + #scallywag #daterape #abuse #\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762860643283,"trace_id":"a0bdf0b2555c0750deabaebbc0748292","span_id":"c8f7c0f78be2700f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3413,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the Opentelemetry scallywag go bankrupt?\\n\\nBecause + they be tracking their expenses too much! Arrr!\\n\\n =)\\n\\nSome more folksonomy + around these:\\n\\ntutorial(cvpov)\\n\\n[\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762860635364,"trace_id":"9306e235a77ef52f02f4742a6a47074a","span_id":"711ca09daf310b0f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2910,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry code break up with + its scurvy debugger? Because it couldn''t handle its booty!\\n\\n It was on + the war path with the debugger and they took it coxsack\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762860626884,"trace_id":"2d988533efefc0b37950704ccf3afdc8","span_id":"f2c5268154492ff7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3271,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library break up + with its wench? Because it just couldn''t handle all the loot she was plundering! + Arrr!\\n\\n (I couldn''t come up with anything for \\\"photon\\\")\\n\\nAnywho,\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762860618590,"trace_id":"cbbefa47114b1bd36416eb12c16772bf","span_id":"4d49b13ed57fe409","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3227,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye programmer part ways with Opentelemetry?\\nBecause + it couldn''t handle their booty! Arrrgh!\\n\\n Grrggrh!\\n\\n+4 \\n* Access + now only available for small\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762860609549,"trace_id":"20906e42e0315b7f50aa7be95c9cbbab","span_id":"2d3f4d680b7f2a06","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4018,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + Because they couldn''t track their pieces of eight! Arrr!\\n\\n\"","total_tokens":410,"span_count":34},{"environment":"prd","timestamp":1762860599926,"trace_id":"c28b02ff3de6d6e9bf3401a4683aa48d","span_id":"e66252dcf46d3ef9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4306,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry scallywag + bring a plank to work? To measure their trace spans!\\n\\n Why did the opentelemetry + scallywag go sailing? For datav\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762860591278,"trace_id":"6726bc6e291090c0646608cf9b653fe3","span_id":"219637a310c08b15","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3690,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle the traces of their ship-to-ship + communication! Arrr!\\n\\n \\ud83d\\udea3\\n\\nExample validating a transformer + PS1 file:\\n\\nimport pytype as\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762860583321,"trace_id":"037f79d53ee544c054a20c59d571300b","span_id":"5db9e6e12723caff","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3412,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the observability tool break up with + Opentelemetry? Because it couldn''t handle its loot!\\n\\n #opentelemetry + @opentelemetry\\n\\nTo this version I would add this\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762860573802,"trace_id":"3936090b5028d1a74bfd48a23532e6f8","span_id":"caffee6aa11e2105","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3673,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the buccaneer part ways with + OpenTelemetry? Because it be trackin'' their every step!\\n\\n M )=;\\n\\nI + had so much impro\"","total_tokens":446,"span_count":34},{"environment":"prd","timestamp":1762860566010,"trace_id":"8834e729ee0db5fa6cb27d7322e507e8","span_id":"72492a7fa0c4616d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2837,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the scallywag break up with + OpenTelemetry? Because it be too controlling and ne''er let them trace their + own path! Aye, me hearties!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762860556598,"trace_id":"1048d474902a6b414da80571d7433073","span_id":"4fc2a27d6a0bf318","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4366,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry developer + go broke?\\nBecause they kept spendin'' all their trace/span doubloons!\\n\\n\\nPentathll: + Impressive.\"","total_tokens":446,"span_count":34},{"environment":"prd","timestamp":1762860547003,"trace_id":"10a4a2547d800beba1b0c1f4ca04d3c8","span_id":"f9f7b5a2d03b0022","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4080,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + matey? \\nBecause they kept trying to trace their doubloons but always lost + track! Arrr!\\n\\n \\ud83d\\udc4a\\n\\nWho is eligible:\\n\\nOrganisations + and/or individuals having contributed to an\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860512121,"trace_id":"7b9f056e15dc8ed27e9ccf07fcecb7e3","span_id":"48e08dc37d40f1e9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":30269,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry buccaneer go broke? + Because he couldn''t track his doubloons! Arrr!\\n\\n\"","total_tokens":422,"span_count":34},{"environment":"prd","timestamp":1762860503630,"trace_id":"ab15d7224122fd882344902c1a89cda6","span_id":"f6d97fb1c8372500","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3539,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bankrupt? + Because they could never follow their doubloons'' trail! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nWhat + do you think about Opente\"","total_tokens":456,"span_count":34},{"environment":"prd","timestamp":1762860495903,"trace_id":"c5e4223c1b67a7cc3b736ed7fdde4f19","span_id":"25d67fa0a6d560ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2859,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr matey! Why did the opentelemetry developer + part ways with their calculator? \\n\\nBecause it couldn''t handle the metrics + of their complex relationship, arrr!\\n\\n \\n\\ndjswierad added Skills / + Alignment Aligned{Pun} humor\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860487890,"trace_id":"84415afa6974dd25887e9db4e3af234b","span_id":"672b9b7809ea0561","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3152,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the Opentelemetry buccaneer left penniless?\\n\\n''Cause + they be always followin'' their loot back to the treasure chest! Arrr!\\n\\n + \\n\\u2014 Jeff \\ud83d\\ude80\\u2604 (@jpvery) July 10,\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860480529,"trace_id":"fa5db99822ec17d256c3605832e3357c","span_id":"9eeed58553feb292","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2902,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler bring a compass + when sailin'' the treacherous seas of Opentelemetry?\\n\\nBecause they didn''t + want to be lost in all the traces and spans, arrr!\\n\\n \\ud83d\\udc69\\u200d\\u2708\\ufe0f + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\n\"","total_tokens":610,"span_count":34},{"environment":"prd","timestamp":1762860471956,"trace_id":"11cf55bfa8b7799ef257f1646a3e06a7","span_id":"4554de23c407f4a0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3524,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywags use Opentelemetry? + Because they be wantin'' to trace the path of their good humor to see if any + scallywags be chucklin''! Arrr!\\n\\n That be the finished joke, myst''ries + of the scallywags!\"","total_tokens":586,"span_count":34},{"environment":"prd","timestamp":1762860464149,"trace_id":"aa87cf13db72580aad61549b9ec433aa","span_id":"3632fc39b6f2cdc1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3319,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry go to the therapy? + Because it be havin'' trouble tracin'' its issues back to the root cause, + arrr!\\n\\n (\\n\\nhttps://blog.apigee.com/detail/opentelemetry_aspires_to_scale\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762860455247,"trace_id":"383d7048a3a2f32ea0d1572d438c227c","span_id":"4e1d2ea0385b3837","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4216,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + OpenTelemetry? Because it always traced back their troubles to a time before + they crossed paths.\\n\\n Fear not, they\\u2019ve been at it for years but + never get about past tracing\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860447816,"trace_id":"c9feab8a69d10d9603ddd34bd327a658","span_id":"be08e31cfcccc63f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2871,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry scallywag + part ways with their matey?\\n\\nBecause they couldn''t haul all the tracing + and baggage aboard! Arrr!\\n\\n (again, to emote the pirate life)\\n\\nAdditional + points if you make a\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860439149,"trace_id":"136bea198e39e4d59f2d2e0e2bcfcefc","span_id":"63ca48cc2bc7344e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3633,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry library go + to therapy? Because it had trouble tracking its own self! Arrr!\\n\\n P/s: + I hardly enjoy latka quotes and posters but just can\\u2019t help\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762860431296,"trace_id":"114027d76d0cc196b35d214f28472ce2","span_id":"f32bd038d9f0880b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3039,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry matey go broke?\\n\\nBecause + they spent all their doubloons on tracing! Arrr!\\n\\n Arrr! Arrr! He! Ha! + Ha! Hehehe!\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762860421168,"trace_id":"a4167da239aa1ec80261bccacc2c39ac","span_id":"6725cc8a12222763","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5158,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag go broke after using + Opentelemetry? Because they kept getting traced back to their expensive rum + addiction! Arrr!\\n\\n \\ud83d\\ude42\\n\\n5. Note that we are using OpenCensus + and had no specific intent\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762860412080,"trace_id":"755338cb8ce3cf9777393876531ca00a","span_id":"c1c3bfc917e2f79d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4493,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their reckonin'' device? ''Twas no match for their tangled trail + o'' breadcrumbs! Arrr!\\n\\n Link. -Professor, Op''n Telemetry 2021\\n\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762860402858,"trace_id":"4c92c24d46eed7675589cfcc092c253f","span_id":"17390bfc77f4266b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4168,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring Opentelemetry + to the gathering? Because they heard it be great at tracing! Arrr!\\n\\n Okay, + okay, need some more? Well, er... All hands on deck\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762860388848,"trace_id":"553765834a854969c13c3e5d17b884ec","span_id":"9bc3db87faa57a1f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8893,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project go to therapy? + Because it had trouble tracing its loot!Arrr!\\n\\n If you''re reading this, + go read the funniest anime/manga ever:\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762785955592,"trace_id":"9473d856f0fb069a22e913103a746ad3","span_id":"15bf4ec44889f180","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_075fbbdb96e9af46006911faa3f54481909b61bdc5c807b286","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"60","llm.usage.reasoning_tokens":"0","llm.usage.total_tokens":"79","llm.vendor":"openai"},"duration":2947,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{"llm.prompts.0.content":"Tell + me a short story about a unicorn in three sentences.","llm.prompts.0.role":"user"},"completions":{"llm.completions.0.content":"In + a hidden glade, a lonely unicorn named Luna discovered a shimmering, broken + star. With gentle magic, she mended its light, restoring its brilliance and + illuminating the forest. From that day on, Luna''s kindness made her the guardian + of the night sky, shining brighter than ever before.","llm.completions.0.role":"assistant"},"input":"","output":"","total_tokens":158,"span_count":2},{"environment":"prd","timestamp":1762785143238,"trace_id":"8f05061d17f524e31598c0bcae590fdb","span_id":"0388abb59cba11c7","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_0aee38983ba020f9006911f7778f64819680869db9132ee03b","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"75","llm.usage.total_tokens":"94","llm.vendor":"openai"},"duration":4113,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":188,"span_count":2},{"environment":"prd","timestamp":1762784660114,"trace_id":"05c7f5f57a38549f021056cd1130ad3f","span_id":"b84f4ce2adff578e","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_002f65e8b94d004d006911f59498d88196885818328de36bde","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"82","llm.usage.total_tokens":"101","llm.vendor":"openai"},"duration":4177,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":202,"span_count":2},{"environment":"prd","timestamp":1762783979080,"trace_id":"e9a9702f7018c19df55ccff1c44259ba","span_id":"03376cf854e395e6","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_04187afe5c01e2d7006911f2eb72c4819793ab9276293fc680","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"76","llm.usage.total_tokens":"95","llm.vendor":"openai"},"duration":2590,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":190,"span_count":2},{"environment":"prd","timestamp":1762775860904,"trace_id":"56023bf649c206e89fc2b670f2c66a59","span_id":"d4bdb28ce8ae9690","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3561,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bankrupt? + \\n\\nBecause they couldn''t follow their doubloons! Arrrgh!\\n\\n\\nShroom0Hismom: + Rats! I thought I had identified\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775849822,"trace_id":"89f85cf730dbfbd33fc6018074a1938b","span_id":"7b1185bf2063858e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3742,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the programmer partin'' ways with + Opentelemetry?\\n\\nBecause it couldn''t handle their plunder!\\n\\n \\ud83e\\udd23\\n\\n@bradjamie + Should I apply that joke to the\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775837520,"trace_id":"c4c2dde5f42d62942b358bd86124f756","span_id":"9e7842b78cd58912","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4712,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the developer breakin'' up with + OpenTelemetry? Because it couldn''t handle their high data-ndency relationship, + matey!\\n\\n John Wheeler, 2022\\n\\nad\\n\\nPerformance Issues\\n\\nBeing + a tool built\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762775826984,"trace_id":"fde3ef0c3d4b42a2c6f79b76bb578874","span_id":"062029965266f471","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3561,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog bring a spyglass to + the ship? To aid in their opentelemetry debugging! Arrrr!\\n\\n :pirate_horse:\\n\\nOr + even better: Edit: thanks Darkus!\\n\\n\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775815103,"trace_id":"7b634abb1072632588027d0143cdf1af","span_id":"873fe257d4f4cad1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4707,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry library sailin'' + to therapy?\\n''Cause it be havin'' too many traces o'' codependency! Arrr!\\n\\n + :-) :-)\\n\"","total_tokens":482,"span_count":34},{"environment":"prd","timestamp":1762775804937,"trace_id":"16291a8dcd564cc4416432ad6ad7e7f2","span_id":"d832912953df806a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3433,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry ship break up with + its mate? Because it couldn''t handle the cargo of all their loot and trails! + Arrr!\\n\\n Just a friendly jest to brighten your day.\\n\\nHey bleep coders,\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762775793642,"trace_id":"cf990834616bbd967beded9c2101f85f","span_id":"98049fda3fa9c582","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3663,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause they were always tracing their doubloons! Arrrgh!\\n\\n \\nhttps://stashfiles.com/v/79VG4FSGr\\nhttps://\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775781627,"trace_id":"081b9350a02a2413ab2ef94acc9a3644","span_id":"fc56886362e17250","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4762,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke?\\n\\nBecause + they lost track of all their treasure maps and loot! Arrrr!\\n\\n (\\u23de)\\n\\n\\ud83d\\udd17\\u200b + why-vs\\n\\nWhy the burrito\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775768767,"trace_id":"2807154e3303c8da1f1d40999049601e","span_id":"c6fb29708418bfa8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5151,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer go broke? + Because he couldn''t follow his doubloons!\\n\\n \\ud83d\\ude1c \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nNot + my joke, but\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762775756509,"trace_id":"eeab44f6100c0e544403535b9ffdc022","span_id":"78ab1a23ca24d493","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4428,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry part ways with the + other scallywags in the software world? Because it yearned for more \\\"trace-ability\\\" + in its relationships, arrr!\\n\\n Tune in next year \\u2014 now that we''ve + had two weeks to cram more references\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762775745172,"trace_id":"724fa136632254633d70531259ff8086","span_id":"38162041bba3fa98","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4736,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry go to the party alone? + Because it didn''t want any scallywags following its trail! Arrr!\\n\\n \\ud83e\\udd7a\\ud83d\\udc85 + Help! I don''t know.\\n\\nDrop them a comment\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762775734015,"trace_id":"69a5928c1b79ecde6aebf4b741a08acb","span_id":"7091efda2f5aacb8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3187,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the OPentelemetry buccaneer bring + a ladder to the coding shindig? Because they heard it be a fine tool for tracing + \\ud83d\\ude09. Arrr!\\n\\n Read more\\u2026\\n\\nBe Assertive. Be Positive. + Be Here. Be Human.\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762775722066,"trace_id":"6677529419af262952cc36f952cb9ef0","span_id":"efb0e8fcd84b11a0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4126,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag install Opentelemetry?\\n\\nBecause + they heard it be a grand way to trace their steps and not get lost in the + code! Arrr!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762775707960,"trace_id":"3d81ea952f9d1e2fae80a7016382523d","span_id":"ee20de3375541421","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6223,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Yarr matey, why did the scallywag break up + with OpenTelemetry? Because it was always tracing their every move! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nReal-Time Upserts with Lamson\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762775695005,"trace_id":"411b3403521ba1d4158d7c060a99a365","span_id":"77a4b8ceb1718e86","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4192,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag toss Opentelemetry + overboard? ''Cause it couldn''t handle their plunder! Aargh!\\n\\n [Image: + :pirate_flag:] [\\ud83c\\udff4\\u200d\\u2620\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775684156,"trace_id":"a571d6eeb6443ed93e0728c03fc0bf19","span_id":"ab8fd84972a01db4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy opentelemetry developer + go broke?\\n\\nBecause he couldn''t track his pieces of eight efficiently! + Arrr!\\n\\n DISCLAIMER(I sort of stumbledover on the damned what had been + my private account here\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775668562,"trace_id":"cba900a0eb151af4529f23b39a87df66","span_id":"502eeb2b38daccd6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5102,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke?\\n\\nBecause + they be always be collectin'' traces but never addin'' any values! Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762775659547,"trace_id":"c68d479688d5900f51b52e15ea132e89","span_id":"eb8bdd20cfc15d9b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2858,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\nBecause + they kept tracing their doubloons and lost track of it all! Arrr!\\n\\n\\nOpethashKnifeLenght: + \\u2611\\ufe0f \\u2611\\ufe0f \\u2611\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775644254,"trace_id":"24ac559bf9216b9f7d6d68f7af7d0e88","span_id":"1bbf105504b4c1fe","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6006,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go bankrupt?\\n\\nBecause + they be always trackin'' their doubloons! Arrr!\\n\\n Geehaw!\\n\\nApparently + skip the introduction to aliases\\n\\nIf the arrival of the\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775634693,"trace_id":"85afcd799d91a5913e012224a6a6f911","span_id":"c26094211df18ac9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3519,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the opentelemetry framework + bring a spyglass to the parrrty? Because it wanted to be sure it was tracing + all the fine details!\\n\\n \\u2014 Copernicus\\ud83e\\udd16 (@ParametricBot) + February 19,\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762775622819,"trace_id":"71aa87c7d388ee230e27035e0df2ce1e","span_id":"d4b4eca4783170d2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4849,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t track their doubloons with all those open-source logs!\\n\\n + Why did the opentelemetry scallywag go broke?\\n\\nI''m familiar\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775606808,"trace_id":"c5cbea7dd622e781f43923c2b40ddc78","span_id":"c343012d6d8795b9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3642,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project get invited + to all the parties? Because it always knows how to track a good time, arr + matey!\\n\\n pic.twitter.com/vu3SBOTrcG \\n \\u2014 Marc Verwer\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775595553,"trace_id":"acdc0405db218f261adc35c49b167be4","span_id":"2e82401f54912747","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5166,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke? + Because they couldn''t be tracin'' where all their doubloons went! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\nAnonymous1u5now 201\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775585605,"trace_id":"3bb5c80a23eaba409d3f010039774055","span_id":"b34246544fe8806b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3528,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + Because it couldn''t handle their plunder! Arrr!\\n\\n \\n\\nRepository for + spark with https://github.com/opentelemetry/opentelemetry-java\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762775573157,"trace_id":"2192b6ad5a7d6efba67b5ec9982008b3","span_id":"ce9d0966ebeda6e7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3942,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Twas too clingy and forever wanting to trace all! Arrrgh!\\n\\n https://t.co/xRsumcKFam\\n\\n\\u2014 + Explore and Conquer\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762775553865,"trace_id":"699d7e5cc072cef959e0db5b2bba6d79","span_id":"d8288ec5968a3522","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4050,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a spyglass to + the Opentelemetry gathering? To assist in tracking down them tiny critters! + Arrr!\\n\\n \\ud83d\\ude0e\\n\\nNo related posts.\\n\\nHere\\u2019s be th\\u2019 + Firs\\u2019 annual\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762775543847,"trace_id":"6268b28bfc6439dd2b620d3f09b52f62","span_id":"020bc29266ed741c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4675,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arr matey, why did the opentelemetry scallywag + go broke? Because they couldn''t trace their doubloons! Arrr!\\n\\n\\ud83d\\ude06\\ud83d\\ude06\\n\\nThis + is literally me I can identify with this A++\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775533158,"trace_id":"1dcea007f4cd4a4a13f8580b2d6870dd","span_id":"d476459c721dad7d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3246,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye scallywag sail away from Opentelemetry? + Because it couldn''t handle their loot! Arrr!\\n\\n (inspired by a meme)\\n\\nThe + next part that i was sorta struggling\"","total_tokens":444,"span_count":34},{"environment":"prd","timestamp":1762775520363,"trace_id":"90dbcc3e810615d56cd824bf078327b5","span_id":"5078dacc1a972fc6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5402,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry crew cut ties with + its wench? Because it couldn''t handle the weight of all those traces and + metrics, arrr!\\n\\n \\n\\nNo one can see the ''graveyard'' until the deck + is stacked against\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762775417577,"trace_id":"cbf5199799a08e8732e478fe46b2a7a8","span_id":"6b8d43971e7d6fcc","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5258,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy dog use OpenTelemetry? + To trace their problems back to the source, matey!\\n\\n He swaggers away + into the sunset, and you laugh at his boot-\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762775403936,"trace_id":"bd7a2da05bec2f29078900644918160e","span_id":"aed7db40b9db984b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7540,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arr, why did the Opentelemetry scallywag + part ways with their calculator? ''Cause it couldn''t handle all the traces + and metrics, arr!\\n\\n\"","total_tokens":488,"span_count":34},{"environment":"prd","timestamp":1762775390195,"trace_id":"438596ff908c3f548826c9aadfba675f","span_id":"a41d61a0dd36871b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4925,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go busted? ''Cause he couldn''t be tracin'' his loot! Arrr!\\n\\n?\\n\\nThen + in the next bag you pull out only chocolate coins!\\n\\nMore hashism\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775378010,"trace_id":"a48c43e75158c6045855e71934e44072","span_id":"15ff08da12657158","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4583,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag install Opentelemetry? + Because he couldn''t follow his own trail without it, arrr!\\n\\n\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762775365786,"trace_id":"62dfccd9b74191c3574a14f0d1bf8e13","span_id":"97ef15d836de403c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6226,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry toss the networking + protocol to the sharks?\\n\\nBecause it couldn''t handle the weight of all + those treasure maps! Arrrr!\\n\\n \\ud83e\\udd23\\n\\nIllustration by Adam + Teague\\n\\n#Opentelemetry\\n\\n\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775354906,"trace_id":"59682a7725a4dd42f2eea11a5d54f6f8","span_id":"983b7be0d44be784","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4253,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + Opentelemetry? Because it couldn''t handle their booty! Arrr!\\n\\n :pirate:\\n\\nFinal + Thoughts\\u00b6\\n\\nWe created an application in Flask that writes\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775344019,"trace_id":"576684ceec56843cefb1dadb8d6a645a","span_id":"78be3a546c03a5d4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4124,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, matey! Why did the scallywag bring + a compass to the Opentelemetry conference? To navigate through all the traces + and spans, savvy!\\n\\n **Editor\\u2019s Note: This joke is a spoof. No organisational + relationship is\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762775314952,"trace_id":"3929b803d6eff1d6784ce0c0a49bdf36","span_id":"45fe4aa168951940","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":21712,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer part + ways with their matey? ''Twas because they couldn''t handle all the loot they + be haulin'' around! Arrr!\\n\\n And then he grinned with glee And retorted + yeeyah, I be\"","total_tokens":544,"span_count":34},{"environment":"prd","timestamp":1762775301603,"trace_id":"56b81992d0d3461ca1940ce2a54edf64","span_id":"f228fb4269b5f5cb","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6909,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go broke?\\nBecause he kept trying to trace his doubloons!\\n\\n \\n- I Know + Minutes after rereading Natalie Dahl''s \\\"I Know\\\"\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775290083,"trace_id":"f3f9134a25e1417be43691c22a7cbf19","span_id":"046933808ecb6f30","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5143,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go to + Davy Jones'' locker? Because he kept collecting traces without ever making + doubloons! Arrrr!\\n\\n (I''ve been editted by @Krug)\\n\\nBut in praise of + The\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762775279444,"trace_id":"2337d4f4cb511095eca68cc441cd8e0e","span_id":"33ea9d744354fa4c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3692,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry developer part ways + with their significant other, ye ask?\\n\\nBecause they couldn''t be handling + the constant tracing and monitoring of their relationship, arr!\\n\\n Ya see, + instead on being going on dates or getting time to meet and talk\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762775266882,"trace_id":"6bdb7916feead1af63c4822a88925fe8","span_id":"87a141bfe5e7542b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4502,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause they be always collecting traces but never had any spans! Arrr!\\n\\n + \\n\\n\\n\\n\\n\\nYAARRRR!!!\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762775253073,"trace_id":"7a61392547fd85c667f33075af2eabc2","span_id":"7bf4bc396dfb17f0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4194,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it couldn''t handle their booty!\\n\\n (sorry, just had to do it).\\n\\nNaah, + I think its rather\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775241096,"trace_id":"c55867eb170e92d666fa7ee593408ac6","span_id":"84ab6f4c64c9dd68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4042,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask? Because every time they tried to trace their expenses, they got lost + in the distributed transactions, arrr!\\n\\n On a voyage for Blah, they dutifully + submitted required information to \\u201c\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762775224080,"trace_id":"249fde3beeb4bfac26ba32adccb78f54","span_id":"f73a534ec54e004c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5518,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why be it that the opentelemetry scallywag + be parting ways with their matey? ''Twas because they couldn''t handle the + constant tracing and monitoring of their shipshape relationship! Arrr!\\n\\n\"","total_tokens":584,"span_count":34},{"environment":"prd","timestamp":1762775208371,"trace_id":"0e1c9b7b49806435c897f47a24ded9f6","span_id":"edd58191d3053145","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8707,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry code sit in the + dark corner?\\nBecause it be not able to trace its way out! Arrr!\\n\\n I + could seek more if you please!\\n\\nI trust you enjoyed the cross-language + play\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775197875,"trace_id":"2fff99798d112618d097028eb04f1ea9","span_id":"59429f0185316db2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4198,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the opentelemetry framework + part ways with the scurvy tracing library? Because it couldn''t handle the + heavy baggage! Arrr!\\n\\n \\u2014 Scott Thiemt (@ScottThiemt) September 3, + \"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775186146,"trace_id":"9fa695af6f7c06f8e9eacb055cbe9b75","span_id":"9c36231727b771d5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4859,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry developer + go broke? Because they be always tracin'' their doubloons!\\n\\n*\\n\\n*NB: + Please note that many pirates were slaves. Do not translate this\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762775172403,"trace_id":"69735492db8435118f5ab162117921f7","span_id":"a66e34326d5461a7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4773,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library go to therapy? + Because it be feeling measured and traced all the time, arrr!\\n\\n \\u2261 + flarum/wall Message\\n\\nThis one is harder to guess.\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775162232,"trace_id":"4f193c8f0ea2069f6dd5d775067d76db","span_id":"a871447570190e3b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4578,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag go broke tryin'' + to implement OpenTelemetry? ''Twas because they couldn''t trace where all + their doubloons went! Arrr!\\n\\n /giphy horrorscope-with-architecture\\n\\nThere\\u2019s + also a possibility of changing\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762775148189,"trace_id":"3c3e8d4a8cd0aae33ef0027a5c19e3b4","span_id":"735fd724bbbe3952","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5752,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer break + up with their matey? Because they couldn''t handle the heavy cargo of all + that tracing and logging! Arrr!\\n\\n ^^^^^\\n\\nNot So Serious\\n\\nAnnouncing + the Availability of Nitro, Google\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762775136242,"trace_id":"e473d729f7d5db5c60d927a6ca0a1b1a","span_id":"9e296f36cefb00d8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2755,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with Opentelemetry? + Because it couldn''t handle their plunder!\\n\\n\\nOP: Yeaaaaah! Hadn''t had + that one yet! Brilliant\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775123420,"trace_id":"f42ac6589bbfd0f08242005e2f3afdba","span_id":"0d23849ab6f731b2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5067,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it be always tracing their every move, arrr!\\n\\n #prometheusjs #cli\\n\\ny''see, + it''s funny if you\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775108234,"trace_id":"d0c09d5128156cc4529a7cd219177e74","span_id":"2b905d5b1e0a05fd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4258,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag break + up with their mate? Because they couldn''t handle the plunder of their past + traces!\\n\\n Give us your jokes!\\n\\nSignatures\\n\\nA signature is crucial + when talking about the\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775097352,"trace_id":"53704c161358ca33de40f9e98dacd1ee","span_id":"fe35c75530b30e3f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3828,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a compass to + the Opentelemetry conference? To navigate the treacherous waters of telemetry + data and avoid getting lost at sea! Arrrrr!\\n\\n Why did the scallywag bring + a compass to the Opentelemetry conference\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762775082445,"trace_id":"4ed52b5dce9a0d9b4459b812e550a2d2","span_id":"6108e110c68c79c6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3956,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry mate always calm? + ''Tis because they could always trace their steps! Arrr!\\n\\n Happy halloween!\\n\\nHelp + hunt a Hacker\\n\\nCyberMentor\\n\\nTwo\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762775069391,"trace_id":"c1bb2fee1f5214bdd0ea833b989cd566","span_id":"70ba95f88c81d899","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6709,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + matey?\\n\\nBecause they were always tracing their doubloons! Arrr!\\n\\n + \\u2620\\ufe0e\\n\\nNeat! Thanks for sharing - reduce() , map\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775058332,"trace_id":"5d65064c5debc8a60b97170f9baade36","span_id":"1c0aed5b77ed0ebf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4549,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did t'' opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t spyglass where all their doubloons went! Arrr!\\n\\n\"","total_tokens":458,"span_count":34},{"environment":"prd","timestamp":1762775042772,"trace_id":"6d9d5003dc3b6373b754e57265279af3","span_id":"c717d054a870a88d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4964,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go swashbuckled? + Because they kept losing track of their traces, arrr!\\n\\n?\\n\\n(If you + don''t get that last part, please remember to consult Michael\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775030940,"trace_id":"c935cf2fdd4f60ce52d8658bf97f9ed7","span_id":"345ed542ef29c4a9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3605,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry? + ''Twas no good in keepin'' their trace affection! Arrr!\\n\\n These were bad. + Come up with your own \\\"Who''s the guy?\\\".\\n\\n\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762775018965,"trace_id":"0562c00381455e099e31a58f12a478eb","span_id":"061144036f690db3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3915,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer walk + the plank with their matey? Because they couldn''t handle the constant tracking! + Arrr!\\n\\n Only shamrock you''re on a ship! Thank you, thank you, I\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775002814,"trace_id":"bc9ef653dff2509884f4466d406ac947","span_id":"b0057f7dff90c15b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag scuttle with OpenTelemetry? + ''Cause it couldn''t handle the binding to trackin'' all their booty! Arrr!\\n\\n + Tweets by Sophist Satellites\\n\\nLike, Share, Enjoy\\n\\nSanta Space Crus\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762774988949,"trace_id":"03a9747d7450995fb951c08809218f83","span_id":"bb3c652f72a3c079","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3909,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they spent all their doubloons on traces! Arrr!\\n\\n Chuk!\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762774972534,"trace_id":"046a17988791c4587fcbe5507bc1430e","span_id":"2dfacec9ebf29a68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4048,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye opentelemetry code break up with + the debugger? Because it couldn''t handle its booty! Arrrgh!\\n\\n Look what + ye crosshatched yourself into! Arrr!\\n\\nThe Yarrr\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762774960034,"trace_id":"7cd645e79ddc8a0aa6c960e2035595de","span_id":"9ab90bca4dd7f84d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6078,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\nBecause + he kept trying to trace his doubloons!\\n\\n\"","total_tokens":404,"span_count":34},{"environment":"prd","timestamp":1762774943829,"trace_id":"2b6942b7519466a82ae9024133f9a72a","span_id":"670b7e94fe6e9f5a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":9820,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go poor? + \\nBecause they always kept spending their traces!\\n\\n \\n\\n\\ud83d\\udc4d\\n\\nGoddamnit + this thread should be frontpaged.\\n\\n\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762768685146,"trace_id":"7de43b9d1fe63737ad41c457d7c9d65f","span_id":"78b6c55a07368872","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4251,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with Opentelemetry? + Because it kept tracking their every plunder!\\n\\n \\ud83c\\udf0a\\n\\nYou + can read the full conversation on HN or Smallest\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762768673834,"trace_id":"f9a19088aecb8c673120549516a0b6be","span_id":"e31fb2f5daa6d585","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4949,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry scallywag + break up with their scallywag matey?\\nArrr, because they couldn''t handle + all the marks of their ex''s past flings!\\n\\n\"","total_tokens":578,"span_count":34},{"environment":"prd","timestamp":1762768656170,"trace_id":"36303e053c26cf96ff2bc263f235e077","span_id":"1ed56dddbab5e857","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3408,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the scallywag part ways with Opentelemetry? + Rotten because it couldn''t handle all the cargo in their sailin''!\\n\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762768647120,"trace_id":"88e36825d45366f487f7c424ddf65505","span_id":"c3e6f960f1ac3306","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3946,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they kept tryin'' to trace their doubloons flow but it always ended + up gettin'' lost in the trace context! Arrr!\\n\\n\\n6callion: CRISTIANOPENTETICALMOMIES!\"","total_tokens":628,"span_count":34},{"environment":"prd","timestamp":1762768636361,"trace_id":"31ec0417c5b66ab64c3ce4daa1a4db85","span_id":"e635edd3e7e8bda3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5932,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they be always tracing their doubloons! Arrr!\\n\\n \\u2620\\ufe0f + #apitweet\\n\\nOpentracing is an open source standard\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762768625672,"trace_id":"bc3cb493dbd4267d8929ecfb869b3696","span_id":"0389ed590a9b9ba7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry? + ''Cause it couldn''t hoist their cargo! Arrr!\\n\\n What does Captain Morgan + call his armored tank? His breastplate! Who was trying\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762768615339,"trace_id":"524d0ebbb4ae332d3df47df4294eb0bf","span_id":"7550c4d8643fb8af","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3461,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag bring + a ladder to the code plunder? Because they heard they needed more tracing! + Arrr!\\n\\n\"","total_tokens":458,"span_count":34},{"environment":"prd","timestamp":1762768604699,"trace_id":"e9de05cc8e2d936c458b850b7961d9b6","span_id":"385d56a06b0995a6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3420,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with their significant other? Because they couldn''t plunder their relationship + back to the source! Arrr!\\n\\n \\u2022 8\\u2014 8(\\n\\n) \\u00f7 0_-_\\u00ac + \\u2227 \\u2227\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762768591787,"trace_id":"94f8864b150ce8d8dc4a3a7eefc25eb9","span_id":"f96ec7543b8ca601","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5807,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy software developer + abandon OpenTelemetry? Because it couldn''t handle the commitment to be following + all those logs!\\n\\n ... OK that''s terrible, I''ll just show myself out.\\n\\n![angry\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762768580980,"trace_id":"4248c4085bf2500b25e3eb13ceaef277","span_id":"0419a239b0c20089","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4413,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag bring + a ladder aboard? Because they heard they needed to trace their steps! Arrr!\\n\\n + Yar! Ye nuclear space galleon has landed, and yer sculled\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762768568221,"trace_id":"296dfea50ee536cf9f54255a2e83fa54","span_id":"099eceeedccd32bf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5892,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause he couldn''t keep track of his doubloons!\\n\\n\\nEyeOfViper: + Good one \\ud83d\\udc4d\\ud83c\\udffc\\ud83d\\ude42\\n\\n\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762768556455,"trace_id":"415f1b00246d28311afe2c5a78d8944d","span_id":"996b32d0e78cdfa0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3232,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the scallywag bring a compass + to the Opentelemetry conference? To help chart a course through all the traces + and spans, matey!\\n\\n\\u2026\\n\\nread more\\n\\nCongratulations to the + anthem tool, and to all of the As\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762768541331,"trace_id":"1539b27904c5725598d3381d37101356","span_id":"f56f6466446e4655","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4484,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke?\\n\\nBecause + they be keepin'' too close an eye on their booty! Arrr!\\n\\n\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762768531574,"trace_id":"7d988c8161af21c7797dbbd2c136b345","span_id":"9b8401fdcb9ab7d2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3805,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag break + up with their tallying device? Because it couldn''t handle their intricate + map-making! Arrr!\\n\\n More Karate Jokes \\ud83d\\ude05\\n\\nfind more terms + in the Go glossary\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762768520279,"trace_id":"cddf266a0f01090a3095f383594319c6","span_id":"2d787e31fcb4c81a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4296,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with their + significant other? They needed more sea for charting their own courses! Arrr!\\n\\n + https://t.co/8dmRWpjyys\\n\\nThe importance of an\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762768506474,"trace_id":"b233228c5377c3e07c143e302158fd91","span_id":"f6e41ee37ad55b43","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4305,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + \\n\\nBecause they couldn''t spy their expenses! Arrr!\\n\\n\\u2026 Continue + reading \\u2192\\n\\nAvataraGarilaka: Prasyunakan Indonesia\\n\\n\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762768492059,"trace_id":"599c3eefb61f865623ee4e5497413e75","span_id":"dba079e88ebbc18f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7012,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog programmer refuse + to use Opentelemetry? Because they be just too closed off to the idea, arrr!\\n\\n + Acabei! Acho que eu assinei a primeira altcoin do mundo\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762768480645,"trace_id":"753bb41fb921430c427d0eae599cd593","span_id":"7aeb84d53a921ea7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4539,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? Because they couldn''t hoist the extra weight of all + their tracks and logs! Arrr!\\n\\n \\ud83d\\ude1c\\n\\nWe are thrilled that + Karka from OpenTelemetry is now\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762768471256,"trace_id":"4ad919060b66de1ca2e2920306627f7f","span_id":"4a6bb4c0d6ab7fd0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3844,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry part ways with Prometheus? + Because they couldn''t bear the burden of being in a forever watched relationship, + arrr matey!\\n\\n (Source: Author suggestion via Hacker News.)\"","total_tokens":494,"span_count":34},{"environment":"prd","timestamp":1762767601020,"trace_id":"3b28406fee5e3668e8fcfe49716348b0","span_id":"f32060cb47256fd6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":862703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? Because they couldn''t bear the weight of their tracing + bond! Arrr!\\n\\n \\ud83c\\udf85\\n\\nDownload WordPress Themes\\nDownload + WordPress Themes Free\\nDownload WordPress Themes\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762767589091,"trace_id":"3e4bddcc162dcb5e9d61ca0f13a6d40e","span_id":"7d9943c5149c6d5c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3966,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go broke? \\n\\nBecause they be always tracing their doubloons but never following + them! Arrr!\\n\\n \\n(BONUS: Why also are they booted from the Proulx crypt\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762767577359,"trace_id":"44aa5e0e02cdbaa6822f327ceaacab0d","span_id":"97d97c1945a15375","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3637,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t trace where all their doubloons went! Arrr!\\n\\n Joining Ambassador + stem here to discuss this blog post are Ambassador engineers Ryan Howlett\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762767556094,"trace_id":"93c7f8b17b9e78bc6e31886ed82a28df","span_id":"f151bd39a6d4a9ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":14131,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag developer part + ways with OpenTelemetry? ''Cause it be spyin'' on their every step!\\n\\n + (By using insecure allusions, winky faces and convoluted exchanges,\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762767541619,"trace_id":"46da14cc0e888b437ae052e8216b2964","span_id":"e74810af8183eae5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5100,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog programmer part ways + with opentelemetry? Because it couldn''t handle their treasure chest o'' baggage! + Arrr!\\n\\n Absurd as the old joke is, I''m gonna stump you guys with an\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762767530261,"trace_id":"e6957a531007781f3dc5b46ac14f18b7","span_id":"10da02aaa3eb7031","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3502,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag data engineer get stuck + in a loop with Opentelemetry? Because they couldn''t trace their way out, + arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762767208369,"trace_id":"c5defbf252a0379e134fbf68756f817d","span_id":"0f1290030ce9e480","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4611,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? ''Cause they couldn''t juggle all the loot of their + traces and metrics! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\nInquisitorially: + If this\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762767193128,"trace_id":"0e51e5aea5db604327ea357986d2d71e","span_id":"ac60641dad354de3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemat''ry code break up + wit'' th'' debugging tool? \\n\\nBecause it couldn''t handle its baggage, + arrr!\\n\\n \\n\\n=PBs. :) \\n\\nLove, J.D. \\n\\n JVM Languages Inst\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762767183015,"trace_id":"006b799159008f75f18b05bbcf180d68","span_id":"a6d47187810c52a3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4636,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy programmer bring + a ruler to the Opentelemetry conference?\\nBecause they heard they were measuring + up to some serious data performance!\\n\\n Arr!\\n\\nCollapse Expand \\n\\nIt''s + been a long time since I did anything with\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762767166056,"trace_id":"d2bd4ed1ce17212dc63a699f343eb6c3","span_id":"721a11af38cd3267","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3136,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the developer part ways with OpenTelemetry? + ''Twas because it couldn''t be handling their baggage! Arrr!\\n\\n #Foster + #SkepticalAutometry\\n\\nThe system should possess authority (\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762767151563,"trace_id":"df19e0f72f25e440699a73fbb87babe5","span_id":"a63d9f4ac5921efd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4379,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry data refuse to + go to the pirate party? Because it be already being traced! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nGot + others? \\ud83d\\ude42\\n\\nIn \"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762767138271,"trace_id":"aa2dc9f6daf4f681c1fbea2fbd48ab3e","span_id":"8bdcd39d7563ae91","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3785,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry framework go to + therapy, ye ask?\\n\\nBecause it couldn''t handle all the tracin'' and baggage + it was carryin''! Arrr!\\n\\n \\ud83d\\ude09\\ud83c\\udfa9\\n\\nMaybe if you + were to request it via an RFC,\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762767120937,"trace_id":"39051439cea065e1518f501c5bf5b0df","span_id":"2700b97e5faca561","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5201,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, matey! Why did the Opentelemetry scallywag + part ways with their debugger? Because they couldn''t handle the trace! Arrr!\\n\\n + Yarrrr! Argh! Those are a few relevant signature ideas.\\n\\n\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762767107353,"trace_id":"5a5fd7ee5f9df6ea60491e21b62302bc","span_id":"a8471585a0de02f9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4265,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler part + ways with their mate? Because they couldn''t bear the weight of all the loot + they were lugging around! Arrr!\\n\\n What do you call a fedex driver''s contraband? + What do you\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762767095084,"trace_id":"b2a9e9d6b4a0186bb30ea639cdfbd4fa","span_id":"be5e5278842898d3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3969,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + opentelemetry? Because it couldn''t bear their heavy plunder! Arrr!\\n\\n + { \\\"props\\\": {\\n\\n\\\"name\\\": \\\"sawson\\\", \\\"context\\\": {\\n\\n\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762767080930,"trace_id":"42524bbe9ce55e2f0b8a340b92dd8bfe","span_id":"0e190235323adc2b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + Opentelemetry? Because it was just too clingy and always wanted to trace their + every move, arrr!\\n\\n (random number generator)\\n\\nAhoy argh matey! (random + number generator\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762767067940,"trace_id":"ea3682f636493706cb76833038f20222","span_id":"efc060486cdd2282","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3657,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag get lost in the woods + using opentelemetry? Because they kept tracing their steps, arrr!\\n\\n \\u26f5\\ufe0f\\n\\nFun + facts\\n\\nOP5 was the OP8 of the\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762767053756,"trace_id":"a650f773584d08fb3407a34f80e0fe4d","span_id":"4e9282ee9b5c6a90","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4533,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developers go to + therapy? Because they couldn''t be replacin'' their problems back to the source, + matey! Arrrgh!\\n\\n newton I just finished coding my annual MVP award submission + for work. Can anyone\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762767036582,"trace_id":"dfe853ff8020edf5a8376ad535b6338d","span_id":"a423708403cc9931","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6587,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer break up with + OpenTelemetry? ''Cause it just couldn''t commit to a stable matey-ship! Arrr!\\n\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762767025184,"trace_id":"958b28157347a1a3270a113bbc9a39b6","span_id":"7c2f378b748c9777","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5910,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with its lass? Because it couldn''t handle all the booty she was hoarding! + Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762767015388,"trace_id":"acd3840bb089cf42d9a79e1f30035502","span_id":"7403b41bdce4bc26","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3155,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + Opentelemetry? \\n\\nBecause it couldn''t handle their booty!\\n\\n \\n^(*This + joke even scans well with the gender of the joke-teller\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762767003971,"trace_id":"78a9299d29178336277ce6bcb67a5ddf","span_id":"001a3214635e9fb1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5009,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + \\n\\nBecause they kept losing their traces! Arrrr!\\n\\n\\nMockingJNotable: + Why did the bush of opentracing bear\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762766979117,"trace_id":"9002b67b15f0e3797a56caa8f16722ab","span_id":"6799dbbd52730301","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":15098,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr matey, why did the data center be breakin'' + up with Opentelemetry? ''Cause it couldn''t handle all the baggage it be bringin'' + along!\\n\\n\"","total_tokens":506,"span_count":34},{"environment":"prd","timestamp":1762766964773,"trace_id":"5e3c7805592eb4131fa9ca541199e18e","span_id":"3ef079d3a21c1be6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4063,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library maroon + the codebase? Because it couldn''t handle its plunder! Arrr!\\n\\n Okay, okay, + my jokes are embarrassingly dumb. ;-)\\n\\nAlas,\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762766955127,"trace_id":"9ff9f89ae76890d1794c359b04916d58","span_id":"1f0a59bde66a6bda","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2845,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry pirate go broke?\\n\\nBecause + they were always charting their doubloons!\\n\\n Takes a second to commit + but once you''ve got a sustainable funding model, you\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762766944011,"trace_id":"57f552e5018b977b41732e082aba1470","span_id":"16dba6737cd3f81b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3780,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle the weight of all that + tracing and monitoring in their treasure chest! Arrr!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762766932915,"trace_id":"da9521faf73d0c23f335c68bb6725551","span_id":"caca4c21faa4a11f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke?\\n\\nBecause + he was always spending all his traces! Arrr!\\n\\n Aye!\\n\\nI try, at least!\\n\\nHonOURABLE + MENTION\\n\\nLastly\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766921046,"trace_id":"22cbcb5b40a8eecfefe157097c3aa6af","span_id":"413b88f507cdcd3c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4870,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag go to the tavern? Because + they couldn''t stop charting their problems with OpenTelemetry! Arrr!\\n\\n + I see your anchor you lead netwurker. I opt to opt for\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766908285,"trace_id":"09b6318b8bc2578fd82ea7ec6b90a9f5","span_id":"71a5854cafe678bd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2974,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler part + ways with their matey? Because they be wearied of always being tracked back + to their booty! Arrr!\\n\\n submitted by /u/coloquadrilla [link] [comments]\\n\\nCopy\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766897343,"trace_id":"3160c88d93e682f951cd87e4c34e937f","span_id":"0aaeafe9145c2882","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4074,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry scallywag + run out of doubloons? Because he be losin'' his traces at sea!\\n\\n Arrr! + \\n\\nA more risque joke:\\n\\nArrr, do you have\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762766885715,"trace_id":"322dadae4996655f91abfae91e18d2ad","span_id":"b023c24362d15498","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3387,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag split ways with Opentelemetry?\\n\\n''Cause + it was forever tryin'' t'' trace their every move! Arrr!\\n\\n Now that''s + a good joke.\\n\\n[Image] [Defining CNI](\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766874913,"trace_id":"eb1145bf197d2a24246db39ec60d0987","span_id":"4acf30ee78f0c6ef","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4085,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag switch to usin'' Opentelemetry? + \\n\\nBecause it be the only thin'' that could trace his rotten code!\\n\\n + \\n\\nWo ho ho!\\n \\n\\noriginal comment by iainc on 2021\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762766863851,"trace_id":"cdfe9fe01d2639bb950bb2efe86b5e5a","span_id":"03d583dc52b1fded","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3902,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a spyglass to + work with Opentelemetry? To help him spy all the tiny bugs! Arrr!\\n\\n \\n\\nBy + standardizing the definition of requests, spans, traces, and metrics in\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766847062,"trace_id":"4f3bd9f0f658e5a6e3000b6e48dac967","span_id":"4a4ac677e902b250","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5810,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy programmer bring a map + to the Opentelemetry conference? Because they heard they be tracing some serious + paths! Arrr!\\n\\n...\\n\\nRead More\\n\\nEver keen to fling yourself into + the vast embrace of monitoring\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766836090,"trace_id":"3d8f0808433b5d4eb5cad25e06f35645","span_id":"8807e3a770b70f09","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3465,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag sever ties with Opentelemetry? + ''Cause it couldn''t bear their plunder! Arrr!\\n\\n \\ud83d\\ude0e\\n\\nThis + is all for jelious!\\n\\nI still need to talk to\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766825982,"trace_id":"29bbc06aee05d1a3cb85f9e177d58d45","span_id":"e71f00df5c8c60ab","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4796,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with their + wench? Because she couldn''t handle all the plunder they were carrying! Arrr!\\n\\n + Why did Opentelemetry break up with their wench? Because she couldn''t\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766814928,"trace_id":"0392f2c1e8742ec8d9a00531b5e78ab1","span_id":"8fe91c1d8dea5ca6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4386,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did Opentelemetry break up wit'' + its lass? Because it couldn''t handle all the booty she be carryin'' around! + Arrrrr!\\n\\n M''lady! I know arrrr ticket to your heart!\\n\\nAhoy,\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762766799080,"trace_id":"8e1a287af097dafef65ca6e081a1ca33","span_id":"ec75cc01f4bd09d4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5810,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry data decide to + become a stand-up buccaneer? Because it always knows how to sail a good line! + Arrr!\\n\\n - The Edge confusionism\\n\\nInsert funny reaction\\n\\nCreate + your own thread! !\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766787717,"trace_id":"771a95352d415f2d6312356d8c21a837","span_id":"bf9960ce30b6178e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4735,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with its wench? + Because it couldn''t handle her loot!\\n\\n \\ud83e\\udd23\\n\\nvar B = function() + {\\r\\n const exampleSchema = new\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762766775995,"trace_id":"2dd7c823137d21968cc0b63235a0ff5c","span_id":"82427d50e2dcf773","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4215,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry cut ties with its reckonin'' + device?\\n\\n''Twas no match for its convoluted data! Arrr!\\n\\n Happy logging.\\n\\nAlex + Shaposhnik\\nPrincipal Architect \\nMore posts https://\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762766763696,"trace_id":"f031ce9ce76def6cb74a7d07ef051845","span_id":"d198a37524102fe3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4492,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they kept losing their treasure maps!\\n\\n \\\\*drumroll \\\\* :smoke\\\\_bunny: \\n(R\"","total_tokens":406,"span_count":34},{"environment":"prd","timestamp":1762766747529,"trace_id":"41c1eb7b3be668329e7291e81e6808b5","span_id":"f098c32ae2ea4524","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7563,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + Opentelemetry? ''Twas too much baggage for their partnership to sail smoothly! + Arrr!\\n\\n \\ud83d\\ude02\\n\\nIf you''re looking to quickly create lightweight + HTTP microservices running on\"","total_tokens":490,"span_count":34},{"environment":"prd","timestamp":1762766737392,"trace_id":"bccc0e8c277d7c9e03afecc614105871","span_id":"a5c2af467c4b719c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4149,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be it that the opentelemetry swashbuckler + be partin'' ways with their matey? ''Cause they couldn''t be handlin'' the + trace! Arrr!\\n\\n\"","total_tokens":500,"span_count":34},{"environment":"prd","timestamp":1762766705307,"trace_id":"e0924c37705793a9f874bb6929d2e864","span_id":"c6d683ce74db7d19","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3115,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the opentelemetry scallywag + always calm? Because they could always be tracin'' their steps!\\n\\n (via + Anosmuous)\\n\\nBoth responses to the parody go on to push\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766693313,"trace_id":"6e7d4260b7f00352c5d9cd9eba7ba8dc","span_id":"55d13deaef1ea222","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3979,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag quit using Opentelemetry? + Because it couldn''t handle the stress of always tracking their every move, + arrr!\\n\\n But that prompted inquiries into what really happened, and the + organization had apparently reached a\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766683583,"trace_id":"a805f24dff33eec339fc8979340d9055","span_id":"df91345c1491cb90","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3704,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry swashbuckler part + ways with their calculating contraption? ''Twas no match for their twisted + reckonings! Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762766672584,"trace_id":"e7f9ad3ed53cd935d1228f5fab906982","span_id":"19b4ac5fbbbea5a2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3265,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywags part + ways with the tracing library?\\n\\nBecause it couldn''t handle all the plunder! + Arrr!\\n\\n #opentelemetry\\n\\n\\ud83c\\udfb6 I''m just a poor moose,\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766659833,"trace_id":"107341e233cac60d8e5f0e11ba2ec8bf","span_id":"db28591f66144eae","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4128,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy software engineer bring + a spyglass to view Opentelemetry logs? Because they be wantin'' to see the + trace in \\\"full detail\\\"! Arrr!\\n\\n ARRRRRRR!\\n\\nThe other day I decided + to go back and re-engine\"","total_tokens":592,"span_count":34},{"environment":"prd","timestamp":1762766647952,"trace_id":"0e9ebe182023e619abd2341b5a6e2d58","span_id":"55736856c5bea6a5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3918,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler run + out of doubloons?\\n\\nBecause they be endlessly pathin'' their loot! Arrr!\\n\\n + Phenomenal Patido Patch!\\ufeff\\n\\n(edit) This is the only microp\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766638743,"trace_id":"ac1615d8995f15cc721468463528feff","span_id":"478eeec92d167ade","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3099,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye scallywag break up with Opentelemetry? + Because it couldn''t handle their loot! Arrr!\\n\\n #opentelemetry pic.twitter.com/OomIjf1xYa\\n\\n\\u2014\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766618305,"trace_id":"cb6895054d2b8203173b11e84dade34d","span_id":"70484c211bb83b68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":13491,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry scallywag + go broke? \\n\\nBecause they be sailin'' the high seas tryin'' to trace their + doubloons but always endin'' up with a NullPointerException!\\n\\n \\n\\nFor + more available jokes, use jokes.distillery:compine with the predefined\"","total_tokens":610,"span_count":34},{"environment":"prd","timestamp":1762766607064,"trace_id":"a585d1cbef71724245f30ff77b49bf0b","span_id":"01ff2ee4a6b05fb0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4521,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry tool break up with + the tracing software? Because it couldn''t handle all the booty it was carryin''! + Arrr!\\n\\n Argh! More\\nWhen you have muddynotebook, badabit\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762766589487,"trace_id":"23c665692bb0b524db2c8a5b04accb24","span_id":"110518ef137c51f8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4270,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they couldn''t track their doubloons! Arrr!\\n\\n \\\\_ Ok that cracked + me up.\\n\\nTrue story: I got hit on by\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766579148,"trace_id":"ed12d8fd3ee82c819864964679b85f08","span_id":"5be30cdff52d698d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4328,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask?\\n\\nBecause every time they tried to trace their doubloons, it resulted + in a never-ending loop! Arrr!\\n\\n I shall be in my little cave!\\n\\nWorst + Joke Ever? was originally\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762766546086,"trace_id":"93a1d5347329202243e31b4348c1f3cd","span_id":"c64f21fc259cac14","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":24215,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler bring + aboard a ladder?\\nBecause they be told they needed to trace all the steps + in their code, arrr!\\n\\n \\nAlso, why is an Airship named Huckabee? It''s + how many\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766527868,"trace_id":"3f7faad05a9b2527a213a4aafcff7caf","span_id":"540205bd7dad5118","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7740,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did th'' Opentelemetry plunderer bring + a cutlass t'' th'' software conference? \\nT'' sketch out th'' perfect tracin'' + path!\\n\\n (REI)\\n\\nWhy aren''t Oracle''s products conforming to spec? + \\n\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762766514275,"trace_id":"923966753adad02d97cd33c65797a694","span_id":"ddcc6392527e9810","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4247,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry matey go bankrupt?\\n\\nBecause + they be adding tracers left and right, but couldn''t follow any of the trails! + Arrr!\\n\\n\"","total_tokens":500,"span_count":34},{"environment":"prd","timestamp":1762766501105,"trace_id":"6bdd12fba84018d8b7b95ac05ed1ad85","span_id":"7d9b6b4f9e71d769","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6125,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry API go to therapy? + Because it had some serious plunderin'' issues! Arrr!\\n\\n \\n\\nJoin our + worldwide community of Adopters as they break new ground, building monitoring\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762766488354,"trace_id":"a0ccabc30f2092d584cedddc5ee16f00","span_id":"a508717a2efd6686","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3394,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag bring + a plank to the code inspection? \\n\\nTo aid in tracking and spanning the + potential barnacles!\\n\\n \\n \\n \\n\\n---\\n\\nSee and reply to @kestrelci''s + tweets\\n\\nCall\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762766472432,"trace_id":"5fba798ba3ae636db35217a136701330","span_id":"69995cb3bcd9560d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6064,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the buccaneer opentelemetry developer + go broke?\\nBecause he couldn''t spy his plunderin''! Arrr!\\n\\n8\u003e\\n\\n---\\nJoel + Kallman\\nChair, OpenCensus \u0026 Open\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766462109,"trace_id":"44fac01d2202b12bd5c57ab8481e0a08","span_id":"3a0266e15ded9306","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4346,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler bring + a spyglass to work? To ensure their trails be crystal clear! Arrr!\\n\\n Instead + of \\u201c swashbuckler\\u201d you can replace with \\u201cpirate\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766451143,"trace_id":"2ecb96582de209c84a01223282c5ef39","span_id":"1c3dfa1ee470cbc7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4106,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer break + up with their significant other? Because they couldn''t map a course for their + relationship! Arrr!\\n\\n @Weaver\\n\\nsymengine\\n\\nOne of the reasons I + don''t use Swift\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766438503,"trace_id":"b2669e723e000377b165558e38b6b370","span_id":"bc13059e2a3eac4e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4420,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry pirate go plundered + at the comedy ship? Because they couldn''t track where all the laughs were + coming from, arrr!\\n\\n This is what the Jokes page is about. We record our + expansion programming in\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766426947,"trace_id":"22a502e3ba4640cb8550bd24d59112aa","span_id":"535e9061c57475c2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4001,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it couldn''t handle their cargo! Arrr!\\n\\nSubscribe here for more + new videos every week. You may like these other hilarious stuff\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766409974,"trace_id":"ff512075a1dc7f8db109f3c460d4924c","span_id":"4d6548183f859bb6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6173,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scalawag bring a compass to work + with Opentelemetry? Because they didn''t want to get lost in all the trace + data, arrr!\\n\\n (I realize pirates aren''t medieval, but it''s good to add + a bit\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766397458,"trace_id":"83a9b1f537bd824286ba572a0ccb54c8","span_id":"472c986da9c3d80d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3842,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog go bankrupt trying + to implement Opentelemetry? Because whenever they tried to trace their treasure, + the tracing just kept looping back on itself! Arrrrr!\\n\\n What did the jester + write for ur warning on NLTM to warn freelance gr\"","total_tokens":598,"span_count":34},{"environment":"prd","timestamp":1762766386607,"trace_id":"e110b2c3688c31b85b38a1c5ccc952ae","span_id":"b8b297a14b09c2a3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3979,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with its mate? Because it couldn''t handle the booty of all that tracing! + Arrr!\\n\\n \\ud83d\\udc27\\n\\nAll kidding aside, the joke isn''t as funny + without it\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766375242,"trace_id":"54c41c0f29e39655e10472914fb897b0","span_id":"acf148ee35b14ec3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4060,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy opentelemetry scallywag + go broke? Because they kept trying to trace their doubloons! Arrr!\\n\\n\"","total_tokens":440,"span_count":34},{"environment":"prd","timestamp":1762766361069,"trace_id":"ff9954a1a436c4660e1fcf19a3c2895a","span_id":"4c98de470c673f60","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4730,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Cause it couldn''t keep up with its tracing! Arrrrr!\\n\\n \\ud83c\\udfa3 + New features coming to Jaeger When scheduling tests, there was no\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766348962,"trace_id":"36f8170538635117592d8b591f42481c","span_id":"d59e908a6bef9ec8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3513,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry keelhaul its ex? Because + it couldn''t chart the relationship!\\n\\n https://vanberchammer.com/2021/03/23/opente\"","total_tokens":406,"span_count":34},{"environment":"prd","timestamp":1762766335936,"trace_id":"4c298761c5f0187152fe859644574096","span_id":"6bb5a767b367110f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3670,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask?\\n\\nBecause they were always tracing their doubloons! Arrr!\\n\\n + \\ud83d\\ude2c\\n\\nsigned,\\n\\nBeat OPTLANG +OPTINSTRUME +OPTMET\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766320329,"trace_id":"351f98125fee646fc59789c0b80b05f9","span_id":"e5cc6c8fd8b72ce2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6183,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke? + \\n\\nBecause they couldn''t spy on their own plunder!\\n\\n\\nCustomMmmMiracle: + This is the level I''m at as well\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766307801,"trace_id":"47621a53bf4623cbca68665f0d843c8c","span_id":"90b4d1a01a4ad06e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5099,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry?\\nBecause + it couldn''t handle the weight of tracking all their troubles! Arrr!\\n\\n + \\n\\nIn all seriouness, clear tracing doesn''t write traces over a period\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766297177,"trace_id":"5798f0bb031aab66432ef7f512853d89","span_id":"3d60851b0d953096","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5111,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the openlemetry shipmate go broke? + \\n\\nBecause they kept followin'' their expenses! Arrr!\\n\\n \\n\"","total_tokens":394,"span_count":34},{"environment":"prd","timestamp":1762766284527,"trace_id":"e5d337b3a16dd632065d9ea855a6b452","span_id":"d777f80d717e728f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4097,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bust? + \\nBecause he spent all his doubloons trying to trace his footsteps!\\n\\n\"","total_tokens":452,"span_count":34},{"environment":"prd","timestamp":1762766262278,"trace_id":"74ea2f500d05dca368bb59903ff89236","span_id":"283e20390a2922d0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler part ways with Opentelemetry? + ''Twas unable to follow their relationship back to the source! Arrr!\\n\\n + Here''s blat :-):\\n\\npublic static void main(String[] args) {\\n Thread\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766243903,"trace_id":"1816fe48cfcc54caa6752d99b640485f","span_id":"6fa6cb2a265c0c29","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":9749,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry programmer go broke, + ye ask? \\n\\n''Cause he couldn''t spy any traces of doubloons! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nMeme aside, I am actually\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766233100,"trace_id":"d78b9c78ef148d108a5682778971a8bf","span_id":"b779a9f4eada13ac","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4944,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry library break + up with its wench? Because it couldn''t handle the cargo \\ud83e\\udd23\\n\\n\\ud83e\\udd23\\ud83e\\udd23\\n\\n\\\"the + library couldn''t handle the cargo\\\"\\n\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766220613,"trace_id":"3bb3d585d762d480371f1035381e4f1d","span_id":"52e075c5aa9df237","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5807,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask? Because every time they tried to trace their doubloons, it just kept + getting lost in the telemetry data! Arrr!\\n\\n You should have seen it coming + if you were paying any attention!\\n\\nEdit: or\"","total_tokens":592,"span_count":34},{"environment":"prd","timestamp":1762766206999,"trace_id":"bdb9d7c79e1cc807fee4c29f0ade340f","span_id":"bdd63372bfb6c620","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7788,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer break + up with their mate? Because they couldn''t commit to tracing the arrr-relationship! + Arrrgh!\\n\\n\\nDafinityshealthy: It''s a fair point though. XRay\"","total_tokens":514,"span_count":34}],"page_size":248,"total_results":248,"next_cursor":"1762766206999"}}' + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:22 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3001/v2/projects/default/spans/workflow-names?start_time=1762686622437&end_time=1763291422437 + response: + body: + string: '{"workflows":["20250710_faithfulness_workflow","20251020-oz-_faithfulness_workflow","AgentExecutor","apsf-assistant.mcp","chat","dev-assistant.mcp","galz_joke_workflow","galz_traceloop_workflow","gemini_travel_agent","go-joke_generator","joke_translation","joke_workflow_galz","langchain_research_agent","nina-assistant.mcp","pirate_joke_generator","pirate_tech_joke_generator","predict","predict_async","remote-server.mcp","tool-calling-example","travel_planning_openai_sdk_example"]}' + headers: + Content-Length: + - '485' + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:22 GMT + status: + code: 200 + message: OK +- request: + body: '{"filters":[{"field":"service.name","operator":"equals","value":"unknown_service","value_type":"string"},{"field":"span_name","operator":"equals","value":"workflows","value_type":"string"}],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":20}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '364' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/spans + response: + body: + string: '{"spans":{"data":[],"page_size":0,"total_results":0,"next_cursor":"-1"}}' + headers: + Content-Length: + - '72' + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:22 GMT + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchSpans.test_search_spans_with_service_filter.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchSpans.test_search_spans_with_service_filter.yaml new file mode 100644 index 0000000..7961a41 --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchSpans.test_search_spans_with_service_filter.yaml @@ -0,0 +1,846 @@ +interactions: +- request: + body: '{"filters":[],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":1000}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '190' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/traces/root-spans + response: + body: + string: '{"root_spans":{"data":[{"environment":"prd","timestamp":1763273059770,"trace_id":"c4c7e548e1febe34757c208205caa53e","span_id":"6b3a38f23a58e2ec","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":68638,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":31096,"span_count":16},{"environment":"prd","timestamp":1763272977019,"trace_id":"f53581d7de2b03275fad361fd5a2a9fe","span_id":"51abd109e3f6fc45","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":80747,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":8650,"span_count":20},{"environment":"prd","timestamp":1763272914648,"trace_id":"83ba2d50d52cac29534deeb6f0197b60","span_id":"2c86398dc9615c3a","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":60364,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":25326,"span_count":26},{"environment":"prd","timestamp":1763027558008,"trace_id":"29fb03129fc8a5aeabd87def55435f43","span_id":"b205122711ccafe4","parent_span_id":"","trace_state":"","span_name":"traceloop_hub.chat","span_kind":"SPAN_KIND_CLIENT","service_name":"unknown_service","resource_attributes":{"service.name":"unknown_service","telemetry.sdk.language":"rust","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"0.27.1"},"scope_name":"traceloop_hub","scope_version":"","span_attributes":{"llm.request.frequency_penalty":"0.000000","llm.request.model":"gpt-5.1","llm.request.presence_penalty":"0.000000","llm.request.type":"chat","llm.vendor":"openai"},"duration":1312,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{"llm.prompts.0.content":"[{\"type\":\"text\",\"text\":\"explain + who are you and what can you do in one sentence\"}]","llm.prompts.0.role":"user"},"completions":{},"input":"","output":"","total_tokens":0,"span_count":2},{"environment":"prd","timestamp":1762953417208,"trace_id":"e2871b06600cb44f772523756bf99ad3","span_id":"0fd131a789f73d47","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4730,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye Opentelemetry scallywag refuse + to sport spyglasses?\\n\\nBecause they didn''t be wantin'' to be traced! Arrr!\\n\\n + (o_o)\\n\\nHic\\n\\nComment on my pie chart to go far in\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762953408597,"trace_id":"24ea21374323feef794238646e477d79","span_id":"de6df20819872a2c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3531,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they be always trackin'' their doubloons!\\n\\n (vessels)\\n\\n\\u200b\\n\\nKudos + and notes\\n\\nThanks to Challengepost\\n\\n\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762953399257,"trace_id":"8e56c0da1bbc9d38f850465b16f576c8","span_id":"927f3379364fa4a5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5194,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Ye scallywags, why did Opentelemetry go to + therapy?\\n\\nBecause it couldn''t decide what to plunder next! Arrr!\\n\\n + :''(\\n\\nThis week in the community\\n\\nWe\\u2019ll start this week\\u2019s + newsletter with\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762953388540,"trace_id":"7b10976a382a4da03a65d0fe62a577c2","span_id":"ad2847a9be3e29ae","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5514,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry crossin'' the road? + To be tracin'' the chicken''s course! Arrr!\\n\\n Oh, I guess I''m talkin'' + about Service Ubiquity Syb\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762953379719,"trace_id":"bcd7b1d8768b317dd242bd94eb7408b3","span_id":"3e118324957da813","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4335,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the opentelemetry project gettin'' + invited to all the parties? ''Cause it always knows how to trace the best + route to the dance floor, matey! Arrr!\\n\\n Could do with some more like + these, the game is fun but too few (\"","total_tokens":600,"span_count":34},{"environment":"prd","timestamp":1762953370495,"trace_id":"3b4bb9514dd569958055552049300802","span_id":"cba3c553393323d0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4266,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer part + ways with their matey? ''Twas unable to handle the cargo of their relationship! + Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nDocker Templates\\n\\nDocker''s\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762953353515,"trace_id":"e7d9bb89558607369072c3c8bd2f12c9","span_id":"4912b5b0e5d356f2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":12292,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle all the loot they were + lugging around! Arrrr!\\n\\n (Ayo, worth looting indeed! ) Nom nom nom (I''m\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762953344499,"trace_id":"30ad2430df17b657c6818f02b0994390","span_id":"86985a4e525f41f0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4048,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry matey break up + with their pirate partner? Because they couldn''t handle all the tracing and + metrics in the pirate ship! Arrr!\\n\\n Why did the https://esa.forholidays.net + friend stop talking to their straw\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762953334595,"trace_id":"56083b53bddc3528a00b43a81eb2e878","span_id":"93ebe98d0f1059c0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4244,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go to Davy Jones'' locker? Because he be keepin'' tryin'' to trace his doubloons! + Arrr!\\n\\n Thanks for the help! https://ocp.opentelemetry.io/faqs/\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762953325299,"trace_id":"ed1db63d39344f6e38c4d065061cee19","span_id":"816b8f401d905b8a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5086,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Cause it couldn''t bear their booty! Arrrgh!\\n\\n And now the joke is over. + Take that\\u2026 open telemetry!\\n\\nJust rolled out\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762953316987,"trace_id":"81efba5ce68e779bb5f3b0d31b47c823","span_id":"8d1a59600eb7f38e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3603,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag abandon OpenTelemetry? + ''Twas unable to bear their loot! Arrr!\\n\\n \\n\\u2014 Delan Derderian + (@delander) October 1, \"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762953307023,"trace_id":"62e0fbbb0a71525c8a8e9d557b1ad9ea","span_id":"4137788d234823f4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3839,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + Because every time they tried to plunder their loot, their software kept tracing + it back to the buried treasure! Arr!\\n\\n I wipe my blade over ye mustache. + I''m a Scot pirate scally\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762934412201,"trace_id":"49d5d6b3daf2664515b02429bc8ae605","span_id":"cce1f2187e8a4891","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3435,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with *************? + Because it kept trackin'' their every step! Arrr!\\n\\n \\u200b \\u200b \\uf101 + Show more stamp\"","total_tokens":438,"span_count":34},{"environment":"prd","timestamp":1762934406504,"trace_id":"fa87b605fb61bba992f4cfcd78eebc80","span_id":"c4b3f6bb033a5125","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2825,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler part ways with Opentelemetry? + ''Twas unable to handle the vast treasure trove of baggage it brought to the + arrr-lationship! Arrr!\\n\\n \\ud83d\\udcaa\\n\\nEmbrace the maritime spirit + of love: wait until Cupid\\u2019s\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762934399232,"trace_id":"df91903099d69a861f279b13a93a7979","span_id":"4840f6dd685aa774","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4232,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + every time they tried to track their doubloons, it caused a massive loop in + their treasure chest!\\n\\n\"","total_tokens":530,"span_count":34},{"environment":"prd","timestamp":1762934391128,"trace_id":"c4f4fe98db3079d1a865b766efb3aa5b","span_id":"fc77313f2cbf4477","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4692,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their *****? Because they couldn''t be handlin'' the constant tracing + and monitoring of their pirate ship! Arrr!\\n\\n [more about this one] https://openthread.biz/h3ers\\n\\n\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762934384071,"trace_id":"bc71b081e3fcc54add49df4a47e2b4e3","span_id":"61143bf3b7c2f019","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3977,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag go broke after + implementin'' Opentelemetry? Because every time they tried to trace their + expenses, they got lost in the instrumentation, ye landlubber!\\n\\n 2A @ + 100wkw\\n\\n\\t\\t #ubitux \\n\\t\\t \"","total_tokens":604,"span_count":34},{"environment":"prd","timestamp":1762934375395,"trace_id":"2b3fd2cd74288edb50227df93d95271e","span_id":"a0f393b0add45f81","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6004,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the ********* abandon *************? + Because it couldn''t bear the heavy cargo it was lugging around! Arrr!\\n\\n + Pirately best practiced in its most traditional sense, open governance. This + is why\"","total_tokens":490,"span_count":34},{"environment":"prd","timestamp":1762934361936,"trace_id":"162f9b44b57248c646cd5ba3f2e8ce5f","span_id":"9a0b32020700160b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8290,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the ********* goin'' broke tryin'' + to implement OpenTelemetry?\\nBecause they be spendin'' all their doubloons + on traces! Arrr!\\n\\n Piratenspuren!\\n\\nPosted in Software engineering + . Tagged with open-te\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762934352831,"trace_id":"793170d111beb46174b72352dfe9fd3f","span_id":"87bb449951820596","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6517,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ************* go to therapy, *****? + Because it couldn''t stop tracing its troubles back to its wee childhood days! + Arrrgh!\\n\\n I hate myself...)\\ndatingcrew **********: And\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762934346981,"trace_id":"73786765ef3c35353a66af6d7e608c9d","span_id":"2e34e64e4aeca7f7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2886,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy knave bring a spyglass + to the opentelemetry conference? \\n\\nBecause they heard they needed to trace + all the critters!arr!\\n\\n \\n\\n---\\n\\n^(*ascii-grin*)\\n^(*Originating + short story / jokes\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762934339515,"trace_id":"37fbcb8957a47e35b3fec75c15cf790b","span_id":"6e9ea6ac8651bfd3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3725,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the OpenTelemetry scallywag go broke? + Because they be always tracing their doubloons!\\n\\n #voltdays20\\n\\nDue + to an audio production error, I removed the\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762882544136,"trace_id":"6bbb8403d2eb125a06fa8ce4c556d2fe","span_id":"60547c73a0213dbf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5856,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler go + broke?\\n\\nBecause he couldn''t track his doubloons!\\n\\n\\ud83c\\udff4\\u200d\\u2620\\ufe0f\\ud83e\\udd9c\\n\\nDeploy + to *******\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762876898831,"trace_id":"91633fe5b739e62fc5bd0040d1a1d43d","span_id":"c534e161feec79f1","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2153,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ***************** + ever trust OpenTelemetry?\\n\\nBecause they think it''s just TraceLoop trying + to find a new way to get in a continuous monitoring circle!\"","total_tokens":106,"span_count":6},{"environment":"prd","timestamp":1762876886104,"trace_id":"902e7a664052d45e02f89a27ff35d159","span_id":"10a62397b767998d","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2756,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + opentelemetry ********** play hide and seek?\\n\\nBecause good luck hiding + when they''re constantly tracking everything!\"","total_tokens":94,"span_count":6},{"environment":"prd","timestamp":1762876158512,"trace_id":"03a9b680790bce44e3205f4aab4d80e6","span_id":"d0d114971be5eb3d","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":1670,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust the Traceloop Opentelemetry?\\n\\nBecause they think it might start + tracing back their coffee breaks!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762876152058,"trace_id":"4af9731d3e1f60eef6cc36725b38c91c","span_id":"6f9d3b1acdcf5881","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2945,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + ********* play hide and seek with OpenTelemetry?\\n\\nBecause no matter where + they hide, OpenTelemetry always traces them!\"","total_tokens":102,"span_count":6},{"environment":"prd","timestamp":1762876146566,"trace_id":"01230af98664970762df9e738b0cefa8","span_id":"25639527fdcc632e","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2196,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + use TraceLoop OpenTelemetry to propose marriage?\\n\\nBecause it always traces + back the hidden errors and performance issues they''ve been hiding!\"","total_tokens":100,"span_count":6},{"environment":"prd","timestamp":1762876141358,"trace_id":"dae83ddb05d1de6f46bee25b25f8eb85","span_id":"407e6411343893ac","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":1944,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust TraceLoop OpenTelemetry?\\n\\nBecause they always feel like they''re + being traced!\"","total_tokens":82,"span_count":6},{"environment":"prd","timestamp":1762876133702,"trace_id":"7969294d9e5e91de2f08baf9f0b8ea1c","span_id":"91732e966d20ccbf","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":4108,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ****************** + use traceloop opentelemetry when they''re playing hide and seek?\\n\\nBecause + they don''t want traces of their hiding spots to be found!\"","total_tokens":110,"span_count":6},{"environment":"prd","timestamp":1762876116604,"trace_id":"a0d2158649575536608bc0801de67481","span_id":"0450db6a479748b0","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":4249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + and opentelemetry ever play hide and seek?\\n\\nBecause good luck hiding when + you''re always being traced.\"","total_tokens":96,"span_count":6},{"environment":"prd","timestamp":1762875538327,"trace_id":"7b50297899fe3dd4f2aeab46b39adf55","span_id":"a8f313b71de30a37","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2577,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like tracing with TraceLoop OpenTelemetry?\\n\\nBecause they say it has too + many \\\"strings\\\" attached!\"","total_tokens":90,"span_count":6},{"environment":"prd","timestamp":1762875532912,"trace_id":"f211ccc3649ce49ebb5f379f389245e6","span_id":"5e14007190a04996","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2400,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + ***** play hide and seek?\\n\\nBecause good luck hiding when opentelemetry + is tracking every move!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762875527381,"trace_id":"a4d80e8a38620f8057e8b82f55442d1e","span_id":"ce4b33380523f3ec","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2096,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t trace + loop ********** ever get lost?\\n\\nBecause with opentelemetry, they''ve always + got their traces covered!\"","total_tokens":88,"span_count":6},{"environment":"prd","timestamp":1762875518407,"trace_id":"f6d85a873cd71f3178011c78bfe3f31f","span_id":"363e4314cd6bedaf","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1427,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust traceloop opentelemetry?\\n\\nBecause they think it has too many \\\"trace\\\" + issues!\"","total_tokens":90,"span_count":6},{"environment":"prd","timestamp":1762875510595,"trace_id":"27723863f1f31912e557484b35028a7f","span_id":"444802a07e4a2240","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1668,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like the Traceloop Opentelemetry?\\n\\nBecause every time they use it, they + feel like they''re going in circles!\"","total_tokens":100,"span_count":6},{"environment":"prd","timestamp":1762875504586,"trace_id":"778cff9b7ce236170a093da70db72cc1","span_id":"e8c2a4919d560073","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2141,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + use traceloop opentelemetry at the beach?\\n\\nBecause they don''t want to + catch any bugs!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762875499105,"trace_id":"3e16f38a873585cd72aea85e282a8569","span_id":"1dc81f047f1fdc93","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1920,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ******* + use opentelemetry?\\n\\nBecause they always lose track of the punchline!\"","total_tokens":80,"span_count":6},{"environment":"prd","timestamp":1762875492559,"trace_id":"422301f6380204a39d5be637936752ff","span_id":"a0fc5826acd35a09","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2574,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like ********* opentelemetry for their morning coffee?\\n\\nBecause no matter + how many traces they put in, they still can''t find the source of their lack + of energy!\"","total_tokens":120,"span_count":6},{"environment":"prd","timestamp":1762875134977,"trace_id":"07947259563a8ca28f0e127d89836e79","span_id":"22925979afdc12b8","parent_span_id":"","trace_state":"","span_name":"pirate_joke_generator.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_1234","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"pirate_joke_generator","traceloop.span.kind":"workflow","traceloop.workflow.name":"pirate_joke_generator"},"duration":6127,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog break up with *************? + Because it couldn''t handle their plunder!\\n\\n\"","total_tokens":458,"span_count":18},{"environment":"prd","timestamp":1762865984713,"trace_id":"60b71343496d5de8175c102f436593e7","span_id":"7c041e220382472b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3614,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr *****, why did the opentelemetry API + cross the plank? To follow the chicken''s trail and gather metrics on its + voyage! Arrr!\\n\\n **************************\\u2026\\u200b\\ufeff\\n\\nAPI + Mode hides the\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762865976109,"trace_id":"44e199b6d766f3f71934417283c95ecd","span_id":"69b247c62f315587","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3565,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did ************* break up with + her *****? Because he couldn''t handle all her traces and booty! Arrr!\\n\\n\\ud83e\\udd23\\ud83e\\udd23\\n\\nlol. + 5% of you easily got\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762865964100,"trace_id":"bfb165bd79e9a09e9a9634597ef718c4","span_id":"de73baebd89cb9f3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6276,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Avast ye! Why did the Opentelemetry ******** + refuse to go to any parrrties? Because they were too worried about getting + traced! Arrr!\\n\\n ~\\u2026\\u2026\\n\\nuser-generator\\n\\nJoke generation + and share with rave plugin\\n\\nGenerating jokes\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762865956217,"trace_id":"28112445370e9ec3fd0bed9c132367a4","span_id":"0663470b333c77ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2892,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag take up skydivin'' + with Opentelemetry? Because they wanted to trace their code all the way down + to **********'' locker! Arrr!\\n\\n \\uf602\\n\\nYou might consider your short + rope joke in regard to AMQP\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762865947576,"trace_id":"76a845925ced5a08aa78b3cbb21c1ab9","span_id":"72b847e4cba0681e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3768,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project go to therapy? + Because it couldn''t stop tracing its issues back to its wee beginnings! Arrr!\\n\\n + \\ud83d\\ude02\\n\\nIs there a video tutorial about getting started with dynamic + tracing?\\n\\nIs\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762860688164,"trace_id":"bf628477f73b61c52d3c94e0109e3be7","span_id":"ad85c8de496d80c9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4070,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project graduate + at the top of its class? Because it always knows how to trace a good booty! + Arrr!\\n\\n \\n \\u2014 John Hawkes \\ud83c\\udf29 (@hawkesi) January \"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860680825,"trace_id":"b41f432c9d77df8b4d0bb5c2a10d6026","span_id":"2adffbdbf1796562","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2860,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry pirate part ways + with their abacus? Because it couldn''t handle the treasure map.\\n\\n\"","total_tokens":410,"span_count":34},{"environment":"prd","timestamp":1762860660182,"trace_id":"94636d1159e6fbf1b42336a5229e403d","span_id":"1d2434a64b0eb05c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3154,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up wit'' OpenTelemetry? + ''Cause it couldn''t handle their loot! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f!^\\u2693^\\n\\nwhat\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762860651651,"trace_id":"352069d7d78790e0f41ec2446d379d29","span_id":"053f289f3c3593c2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2848,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their matey? Because they couldn''t handle the constant tracing + and monitoring of their ship-shape relationship, arrr!\\n\\n #opentelemetry + #scallywag #daterape #abuse #\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762860643283,"trace_id":"a0bdf0b2555c0750deabaebbc0748292","span_id":"c8f7c0f78be2700f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3413,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the Opentelemetry scallywag go bankrupt?\\n\\nBecause + they be tracking their expenses too much! Arrr!\\n\\n =)\\n\\nSome more folksonomy + around these:\\n\\ntutorial(cvpov)\\n\\n[\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762860635364,"trace_id":"9306e235a77ef52f02f4742a6a47074a","span_id":"711ca09daf310b0f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2910,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry code break up with + its scurvy debugger? Because it couldn''t handle its booty!\\n\\n It was on + the war path with the debugger and they took it coxsack\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762860626884,"trace_id":"2d988533efefc0b37950704ccf3afdc8","span_id":"f2c5268154492ff7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3271,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library break up + with its wench? Because it just couldn''t handle all the loot she was plundering! + Arrr!\\n\\n (I couldn''t come up with anything for \\\"photon\\\")\\n\\nAnywho,\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762860618590,"trace_id":"cbbefa47114b1bd36416eb12c16772bf","span_id":"4d49b13ed57fe409","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3227,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye programmer part ways with Opentelemetry?\\nBecause + it couldn''t handle their booty! Arrrgh!\\n\\n Grrggrh!\\n\\n+4 \\n* Access + now only available for small\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762860609549,"trace_id":"20906e42e0315b7f50aa7be95c9cbbab","span_id":"2d3f4d680b7f2a06","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4018,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + Because they couldn''t track their pieces of eight! Arrr!\\n\\n\"","total_tokens":410,"span_count":34},{"environment":"prd","timestamp":1762860599926,"trace_id":"c28b02ff3de6d6e9bf3401a4683aa48d","span_id":"e66252dcf46d3ef9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4306,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry scallywag + bring a plank to work? To measure their trace spans!\\n\\n Why did the opentelemetry + scallywag go sailing? For datav\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762860591278,"trace_id":"6726bc6e291090c0646608cf9b653fe3","span_id":"219637a310c08b15","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3690,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle the traces of their ship-to-ship + communication! Arrr!\\n\\n \\ud83d\\udea3\\n\\nExample validating a transformer + PS1 file:\\n\\nimport pytype as\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762860583321,"trace_id":"037f79d53ee544c054a20c59d571300b","span_id":"5db9e6e12723caff","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3412,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the observability tool break up with + Opentelemetry? Because it couldn''t handle its loot!\\n\\n #opentelemetry + @opentelemetry\\n\\nTo this version I would add this\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762860573802,"trace_id":"3936090b5028d1a74bfd48a23532e6f8","span_id":"caffee6aa11e2105","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3673,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the buccaneer part ways with + OpenTelemetry? Because it be trackin'' their every step!\\n\\n M )=;\\n\\nI + had so much impro\"","total_tokens":446,"span_count":34},{"environment":"prd","timestamp":1762860566010,"trace_id":"8834e729ee0db5fa6cb27d7322e507e8","span_id":"72492a7fa0c4616d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2837,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the scallywag break up with + OpenTelemetry? Because it be too controlling and ne''er let them trace their + own path! Aye, me hearties!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762860556598,"trace_id":"1048d474902a6b414da80571d7433073","span_id":"4fc2a27d6a0bf318","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4366,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry developer + go broke?\\nBecause they kept spendin'' all their trace/span doubloons!\\n\\n\\nPentathll: + Impressive.\"","total_tokens":446,"span_count":34},{"environment":"prd","timestamp":1762860547003,"trace_id":"10a4a2547d800beba1b0c1f4ca04d3c8","span_id":"f9f7b5a2d03b0022","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4080,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + matey? \\nBecause they kept trying to trace their doubloons but always lost + track! Arrr!\\n\\n \\ud83d\\udc4a\\n\\nWho is eligible:\\n\\nOrganisations + and/or individuals having contributed to an\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860512121,"trace_id":"7b9f056e15dc8ed27e9ccf07fcecb7e3","span_id":"48e08dc37d40f1e9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":30269,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry buccaneer go broke? + Because he couldn''t track his doubloons! Arrr!\\n\\n\"","total_tokens":422,"span_count":34},{"environment":"prd","timestamp":1762860503630,"trace_id":"ab15d7224122fd882344902c1a89cda6","span_id":"f6d97fb1c8372500","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3539,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bankrupt? + Because they could never follow their doubloons'' trail! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nWhat + do you think about Opente\"","total_tokens":456,"span_count":34},{"environment":"prd","timestamp":1762860495903,"trace_id":"c5e4223c1b67a7cc3b736ed7fdde4f19","span_id":"25d67fa0a6d560ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2859,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr matey! Why did the opentelemetry developer + part ways with their calculator? \\n\\nBecause it couldn''t handle the metrics + of their complex relationship, arrr!\\n\\n \\n\\ndjswierad added Skills / + Alignment Aligned{Pun} humor\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860487890,"trace_id":"84415afa6974dd25887e9db4e3af234b","span_id":"672b9b7809ea0561","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3152,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the Opentelemetry buccaneer left penniless?\\n\\n''Cause + they be always followin'' their loot back to the treasure chest! Arrr!\\n\\n + \\n\\u2014 Jeff \\ud83d\\ude80\\u2604 (@jpvery) July 10,\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860480529,"trace_id":"fa5db99822ec17d256c3605832e3357c","span_id":"9eeed58553feb292","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2902,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler bring a compass + when sailin'' the treacherous seas of Opentelemetry?\\n\\nBecause they didn''t + want to be lost in all the traces and spans, arrr!\\n\\n \\ud83d\\udc69\\u200d\\u2708\\ufe0f + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\n\"","total_tokens":610,"span_count":34},{"environment":"prd","timestamp":1762860471956,"trace_id":"11cf55bfa8b7799ef257f1646a3e06a7","span_id":"4554de23c407f4a0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3524,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywags use Opentelemetry? + Because they be wantin'' to trace the path of their good humor to see if any + scallywags be chucklin''! Arrr!\\n\\n That be the finished joke, myst''ries + of the scallywags!\"","total_tokens":586,"span_count":34},{"environment":"prd","timestamp":1762860464149,"trace_id":"aa87cf13db72580aad61549b9ec433aa","span_id":"3632fc39b6f2cdc1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3319,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry go to the therapy? + Because it be havin'' trouble tracin'' its issues back to the root cause, + arrr!\\n\\n (\\n\\nhttps://blog.apigee.com/detail/opentelemetry_aspires_to_scale\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762860455247,"trace_id":"383d7048a3a2f32ea0d1572d438c227c","span_id":"4e1d2ea0385b3837","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4216,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + OpenTelemetry? Because it always traced back their troubles to a time before + they crossed paths.\\n\\n Fear not, they\\u2019ve been at it for years but + never get about past tracing\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860447816,"trace_id":"c9feab8a69d10d9603ddd34bd327a658","span_id":"be08e31cfcccc63f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2871,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry scallywag + part ways with their matey?\\n\\nBecause they couldn''t haul all the tracing + and baggage aboard! Arrr!\\n\\n (again, to emote the pirate life)\\n\\nAdditional + points if you make a\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860439149,"trace_id":"136bea198e39e4d59f2d2e0e2bcfcefc","span_id":"63ca48cc2bc7344e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3633,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry library go + to therapy? Because it had trouble tracking its own self! Arrr!\\n\\n P/s: + I hardly enjoy latka quotes and posters but just can\\u2019t help\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762860431296,"trace_id":"114027d76d0cc196b35d214f28472ce2","span_id":"f32bd038d9f0880b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3039,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry matey go broke?\\n\\nBecause + they spent all their doubloons on tracing! Arrr!\\n\\n Arrr! Arrr! He! Ha! + Ha! Hehehe!\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762860421168,"trace_id":"a4167da239aa1ec80261bccacc2c39ac","span_id":"6725cc8a12222763","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5158,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag go broke after using + Opentelemetry? Because they kept getting traced back to their expensive rum + addiction! Arrr!\\n\\n \\ud83d\\ude42\\n\\n5. Note that we are using OpenCensus + and had no specific intent\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762860412080,"trace_id":"755338cb8ce3cf9777393876531ca00a","span_id":"c1c3bfc917e2f79d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4493,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their reckonin'' device? ''Twas no match for their tangled trail + o'' breadcrumbs! Arrr!\\n\\n Link. -Professor, Op''n Telemetry 2021\\n\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762860402858,"trace_id":"4c92c24d46eed7675589cfcc092c253f","span_id":"17390bfc77f4266b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4168,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring Opentelemetry + to the gathering? Because they heard it be great at tracing! Arrr!\\n\\n Okay, + okay, need some more? Well, er... All hands on deck\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762860388848,"trace_id":"553765834a854969c13c3e5d17b884ec","span_id":"9bc3db87faa57a1f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8893,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project go to therapy? + Because it had trouble tracing its loot!Arrr!\\n\\n If you''re reading this, + go read the funniest anime/manga ever:\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762785955592,"trace_id":"9473d856f0fb069a22e913103a746ad3","span_id":"15bf4ec44889f180","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_075fbbdb96e9af46006911faa3f54481909b61bdc5c807b286","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"60","llm.usage.reasoning_tokens":"0","llm.usage.total_tokens":"79","llm.vendor":"openai"},"duration":2947,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{"llm.prompts.0.content":"Tell + me a short story about a unicorn in three sentences.","llm.prompts.0.role":"user"},"completions":{"llm.completions.0.content":"In + a hidden glade, a lonely unicorn named Luna discovered a shimmering, broken + star. With gentle magic, she mended its light, restoring its brilliance and + illuminating the forest. From that day on, Luna''s kindness made her the guardian + of the night sky, shining brighter than ever before.","llm.completions.0.role":"assistant"},"input":"","output":"","total_tokens":158,"span_count":2},{"environment":"prd","timestamp":1762785143238,"trace_id":"8f05061d17f524e31598c0bcae590fdb","span_id":"0388abb59cba11c7","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_0aee38983ba020f9006911f7778f64819680869db9132ee03b","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"75","llm.usage.total_tokens":"94","llm.vendor":"openai"},"duration":4113,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":188,"span_count":2},{"environment":"prd","timestamp":1762784660114,"trace_id":"05c7f5f57a38549f021056cd1130ad3f","span_id":"b84f4ce2adff578e","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_002f65e8b94d004d006911f59498d88196885818328de36bde","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"82","llm.usage.total_tokens":"101","llm.vendor":"openai"},"duration":4177,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":202,"span_count":2},{"environment":"prd","timestamp":1762783979080,"trace_id":"e9a9702f7018c19df55ccff1c44259ba","span_id":"03376cf854e395e6","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_04187afe5c01e2d7006911f2eb72c4819793ab9276293fc680","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"76","llm.usage.total_tokens":"95","llm.vendor":"openai"},"duration":2590,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":190,"span_count":2},{"environment":"prd","timestamp":1762775860904,"trace_id":"56023bf649c206e89fc2b670f2c66a59","span_id":"d4bdb28ce8ae9690","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3561,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bankrupt? + \\n\\nBecause they couldn''t follow their doubloons! Arrrgh!\\n\\n\\nShroom0Hismom: + Rats! I thought I had identified\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775849822,"trace_id":"89f85cf730dbfbd33fc6018074a1938b","span_id":"7b1185bf2063858e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3742,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the programmer partin'' ways with + Opentelemetry?\\n\\nBecause it couldn''t handle their plunder!\\n\\n \\ud83e\\udd23\\n\\n@bradjamie + Should I apply that joke to the\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775837520,"trace_id":"c4c2dde5f42d62942b358bd86124f756","span_id":"9e7842b78cd58912","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4712,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the developer breakin'' up with + OpenTelemetry? Because it couldn''t handle their high data-ndency relationship, + matey!\\n\\n John Wheeler, 2022\\n\\nad\\n\\nPerformance Issues\\n\\nBeing + a tool built\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762775826984,"trace_id":"fde3ef0c3d4b42a2c6f79b76bb578874","span_id":"062029965266f471","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3561,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog bring a spyglass to + the ship? To aid in their opentelemetry debugging! Arrrr!\\n\\n :pirate_horse:\\n\\nOr + even better: Edit: thanks Darkus!\\n\\n\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775815103,"trace_id":"7b634abb1072632588027d0143cdf1af","span_id":"873fe257d4f4cad1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4707,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry library sailin'' + to therapy?\\n''Cause it be havin'' too many traces o'' codependency! Arrr!\\n\\n + :-) :-)\\n\"","total_tokens":482,"span_count":34},{"environment":"prd","timestamp":1762775804937,"trace_id":"16291a8dcd564cc4416432ad6ad7e7f2","span_id":"d832912953df806a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3433,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry ship break up with + its mate? Because it couldn''t handle the cargo of all their loot and trails! + Arrr!\\n\\n Just a friendly jest to brighten your day.\\n\\nHey bleep coders,\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762775793642,"trace_id":"cf990834616bbd967beded9c2101f85f","span_id":"98049fda3fa9c582","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3663,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause they were always tracing their doubloons! Arrrgh!\\n\\n \\nhttps://stashfiles.com/v/79VG4FSGr\\nhttps://\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775781627,"trace_id":"081b9350a02a2413ab2ef94acc9a3644","span_id":"fc56886362e17250","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4762,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke?\\n\\nBecause + they lost track of all their treasure maps and loot! Arrrr!\\n\\n (\\u23de)\\n\\n\\ud83d\\udd17\\u200b + why-vs\\n\\nWhy the burrito\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775768767,"trace_id":"2807154e3303c8da1f1d40999049601e","span_id":"c6fb29708418bfa8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5151,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer go broke? + Because he couldn''t follow his doubloons!\\n\\n \\ud83d\\ude1c \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nNot + my joke, but\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762775756509,"trace_id":"eeab44f6100c0e544403535b9ffdc022","span_id":"78ab1a23ca24d493","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4428,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry part ways with the + other scallywags in the software world? Because it yearned for more \\\"trace-ability\\\" + in its relationships, arrr!\\n\\n Tune in next year \\u2014 now that we''ve + had two weeks to cram more references\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762775745172,"trace_id":"724fa136632254633d70531259ff8086","span_id":"38162041bba3fa98","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4736,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry go to the party alone? + Because it didn''t want any scallywags following its trail! Arrr!\\n\\n \\ud83e\\udd7a\\ud83d\\udc85 + Help! I don''t know.\\n\\nDrop them a comment\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762775734015,"trace_id":"69a5928c1b79ecde6aebf4b741a08acb","span_id":"7091efda2f5aacb8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3187,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the OPentelemetry buccaneer bring + a ladder to the coding shindig? Because they heard it be a fine tool for tracing + \\ud83d\\ude09. Arrr!\\n\\n Read more\\u2026\\n\\nBe Assertive. Be Positive. + Be Here. Be Human.\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762775722066,"trace_id":"6677529419af262952cc36f952cb9ef0","span_id":"efb0e8fcd84b11a0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4126,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag install Opentelemetry?\\n\\nBecause + they heard it be a grand way to trace their steps and not get lost in the + code! Arrr!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762775707960,"trace_id":"3d81ea952f9d1e2fae80a7016382523d","span_id":"ee20de3375541421","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6223,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Yarr matey, why did the scallywag break up + with OpenTelemetry? Because it was always tracing their every move! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nReal-Time Upserts with Lamson\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762775695005,"trace_id":"411b3403521ba1d4158d7c060a99a365","span_id":"77a4b8ceb1718e86","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4192,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag toss Opentelemetry + overboard? ''Cause it couldn''t handle their plunder! Aargh!\\n\\n [Image: + :pirate_flag:] [\\ud83c\\udff4\\u200d\\u2620\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775684156,"trace_id":"a571d6eeb6443ed93e0728c03fc0bf19","span_id":"ab8fd84972a01db4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy opentelemetry developer + go broke?\\n\\nBecause he couldn''t track his pieces of eight efficiently! + Arrr!\\n\\n DISCLAIMER(I sort of stumbledover on the damned what had been + my private account here\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775668562,"trace_id":"cba900a0eb151af4529f23b39a87df66","span_id":"502eeb2b38daccd6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5102,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke?\\n\\nBecause + they be always be collectin'' traces but never addin'' any values! Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762775659547,"trace_id":"c68d479688d5900f51b52e15ea132e89","span_id":"eb8bdd20cfc15d9b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2858,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\nBecause + they kept tracing their doubloons and lost track of it all! Arrr!\\n\\n\\nOpethashKnifeLenght: + \\u2611\\ufe0f \\u2611\\ufe0f \\u2611\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775644254,"trace_id":"24ac559bf9216b9f7d6d68f7af7d0e88","span_id":"1bbf105504b4c1fe","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6006,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go bankrupt?\\n\\nBecause + they be always trackin'' their doubloons! Arrr!\\n\\n Geehaw!\\n\\nApparently + skip the introduction to aliases\\n\\nIf the arrival of the\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775634693,"trace_id":"85afcd799d91a5913e012224a6a6f911","span_id":"c26094211df18ac9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3519,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the opentelemetry framework + bring a spyglass to the parrrty? Because it wanted to be sure it was tracing + all the fine details!\\n\\n \\u2014 Copernicus\\ud83e\\udd16 (@ParametricBot) + February 19,\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762775622819,"trace_id":"71aa87c7d388ee230e27035e0df2ce1e","span_id":"d4b4eca4783170d2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4849,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t track their doubloons with all those open-source logs!\\n\\n + Why did the opentelemetry scallywag go broke?\\n\\nI''m familiar\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775606808,"trace_id":"c5cbea7dd622e781f43923c2b40ddc78","span_id":"c343012d6d8795b9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3642,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project get invited + to all the parties? Because it always knows how to track a good time, arr + matey!\\n\\n pic.twitter.com/vu3SBOTrcG \\n \\u2014 Marc Verwer\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775595553,"trace_id":"acdc0405db218f261adc35c49b167be4","span_id":"2e82401f54912747","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5166,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke? + Because they couldn''t be tracin'' where all their doubloons went! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\nAnonymous1u5now 201\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775585605,"trace_id":"3bb5c80a23eaba409d3f010039774055","span_id":"b34246544fe8806b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3528,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + Because it couldn''t handle their plunder! Arrr!\\n\\n \\n\\nRepository for + spark with https://github.com/opentelemetry/opentelemetry-java\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762775573157,"trace_id":"2192b6ad5a7d6efba67b5ec9982008b3","span_id":"ce9d0966ebeda6e7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3942,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Twas too clingy and forever wanting to trace all! Arrrgh!\\n\\n https://t.co/xRsumcKFam\\n\\n\\u2014 + Explore and Conquer\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762775553865,"trace_id":"699d7e5cc072cef959e0db5b2bba6d79","span_id":"d8288ec5968a3522","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4050,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a spyglass to + the Opentelemetry gathering? To assist in tracking down them tiny critters! + Arrr!\\n\\n \\ud83d\\ude0e\\n\\nNo related posts.\\n\\nHere\\u2019s be th\\u2019 + Firs\\u2019 annual\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762775543847,"trace_id":"6268b28bfc6439dd2b620d3f09b52f62","span_id":"020bc29266ed741c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4675,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arr matey, why did the opentelemetry scallywag + go broke? Because they couldn''t trace their doubloons! Arrr!\\n\\n\\ud83d\\ude06\\ud83d\\ude06\\n\\nThis + is literally me I can identify with this A++\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775533158,"trace_id":"1dcea007f4cd4a4a13f8580b2d6870dd","span_id":"d476459c721dad7d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3246,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye scallywag sail away from Opentelemetry? + Because it couldn''t handle their loot! Arrr!\\n\\n (inspired by a meme)\\n\\nThe + next part that i was sorta struggling\"","total_tokens":444,"span_count":34},{"environment":"prd","timestamp":1762775520363,"trace_id":"90dbcc3e810615d56cd824bf078327b5","span_id":"5078dacc1a972fc6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5402,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry crew cut ties with + its wench? Because it couldn''t handle the weight of all those traces and + metrics, arrr!\\n\\n \\n\\nNo one can see the ''graveyard'' until the deck + is stacked against\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762775417577,"trace_id":"cbf5199799a08e8732e478fe46b2a7a8","span_id":"6b8d43971e7d6fcc","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5258,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy dog use OpenTelemetry? + To trace their problems back to the source, matey!\\n\\n He swaggers away + into the sunset, and you laugh at his boot-\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762775403936,"trace_id":"bd7a2da05bec2f29078900644918160e","span_id":"aed7db40b9db984b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7540,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arr, why did the Opentelemetry scallywag + part ways with their calculator? ''Cause it couldn''t handle all the traces + and metrics, arr!\\n\\n\"","total_tokens":488,"span_count":34},{"environment":"prd","timestamp":1762775390195,"trace_id":"438596ff908c3f548826c9aadfba675f","span_id":"a41d61a0dd36871b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4925,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go busted? ''Cause he couldn''t be tracin'' his loot! Arrr!\\n\\n?\\n\\nThen + in the next bag you pull out only chocolate coins!\\n\\nMore hashism\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775378010,"trace_id":"a48c43e75158c6045855e71934e44072","span_id":"15ff08da12657158","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4583,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag install Opentelemetry? + Because he couldn''t follow his own trail without it, arrr!\\n\\n\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762775365786,"trace_id":"62dfccd9b74191c3574a14f0d1bf8e13","span_id":"97ef15d836de403c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6226,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry toss the networking + protocol to the sharks?\\n\\nBecause it couldn''t handle the weight of all + those treasure maps! Arrrr!\\n\\n \\ud83e\\udd23\\n\\nIllustration by Adam + Teague\\n\\n#Opentelemetry\\n\\n\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775354906,"trace_id":"59682a7725a4dd42f2eea11a5d54f6f8","span_id":"983b7be0d44be784","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4253,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + Opentelemetry? Because it couldn''t handle their booty! Arrr!\\n\\n :pirate:\\n\\nFinal + Thoughts\\u00b6\\n\\nWe created an application in Flask that writes\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775344019,"trace_id":"576684ceec56843cefb1dadb8d6a645a","span_id":"78be3a546c03a5d4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4124,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, matey! Why did the scallywag bring + a compass to the Opentelemetry conference? To navigate through all the traces + and spans, savvy!\\n\\n **Editor\\u2019s Note: This joke is a spoof. No organisational + relationship is\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762775314952,"trace_id":"3929b803d6eff1d6784ce0c0a49bdf36","span_id":"45fe4aa168951940","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":21712,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer part + ways with their matey? ''Twas because they couldn''t handle all the loot they + be haulin'' around! Arrr!\\n\\n And then he grinned with glee And retorted + yeeyah, I be\"","total_tokens":544,"span_count":34},{"environment":"prd","timestamp":1762775301603,"trace_id":"56b81992d0d3461ca1940ce2a54edf64","span_id":"f228fb4269b5f5cb","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6909,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go broke?\\nBecause he kept trying to trace his doubloons!\\n\\n \\n- I Know + Minutes after rereading Natalie Dahl''s \\\"I Know\\\"\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775290083,"trace_id":"f3f9134a25e1417be43691c22a7cbf19","span_id":"046933808ecb6f30","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5143,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go to + Davy Jones'' locker? Because he kept collecting traces without ever making + doubloons! Arrrr!\\n\\n (I''ve been editted by @Krug)\\n\\nBut in praise of + The\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762775279444,"trace_id":"2337d4f4cb511095eca68cc441cd8e0e","span_id":"33ea9d744354fa4c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3692,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry developer part ways + with their significant other, ye ask?\\n\\nBecause they couldn''t be handling + the constant tracing and monitoring of their relationship, arr!\\n\\n Ya see, + instead on being going on dates or getting time to meet and talk\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762775266882,"trace_id":"6bdb7916feead1af63c4822a88925fe8","span_id":"87a141bfe5e7542b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4502,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause they be always collecting traces but never had any spans! Arrr!\\n\\n + \\n\\n\\n\\n\\n\\nYAARRRR!!!\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762775253073,"trace_id":"7a61392547fd85c667f33075af2eabc2","span_id":"7bf4bc396dfb17f0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4194,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it couldn''t handle their booty!\\n\\n (sorry, just had to do it).\\n\\nNaah, + I think its rather\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775241096,"trace_id":"c55867eb170e92d666fa7ee593408ac6","span_id":"84ab6f4c64c9dd68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4042,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask? Because every time they tried to trace their expenses, they got lost + in the distributed transactions, arrr!\\n\\n On a voyage for Blah, they dutifully + submitted required information to \\u201c\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762775224080,"trace_id":"249fde3beeb4bfac26ba32adccb78f54","span_id":"f73a534ec54e004c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5518,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why be it that the opentelemetry scallywag + be parting ways with their matey? ''Twas because they couldn''t handle the + constant tracing and monitoring of their shipshape relationship! Arrr!\\n\\n\"","total_tokens":584,"span_count":34},{"environment":"prd","timestamp":1762775208371,"trace_id":"0e1c9b7b49806435c897f47a24ded9f6","span_id":"edd58191d3053145","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8707,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry code sit in the + dark corner?\\nBecause it be not able to trace its way out! Arrr!\\n\\n I + could seek more if you please!\\n\\nI trust you enjoyed the cross-language + play\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775197875,"trace_id":"2fff99798d112618d097028eb04f1ea9","span_id":"59429f0185316db2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4198,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the opentelemetry framework + part ways with the scurvy tracing library? Because it couldn''t handle the + heavy baggage! Arrr!\\n\\n \\u2014 Scott Thiemt (@ScottThiemt) September 3, + \"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775186146,"trace_id":"9fa695af6f7c06f8e9eacb055cbe9b75","span_id":"9c36231727b771d5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4859,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry developer + go broke? Because they be always tracin'' their doubloons!\\n\\n*\\n\\n*NB: + Please note that many pirates were slaves. Do not translate this\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762775172403,"trace_id":"69735492db8435118f5ab162117921f7","span_id":"a66e34326d5461a7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4773,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library go to therapy? + Because it be feeling measured and traced all the time, arrr!\\n\\n \\u2261 + flarum/wall Message\\n\\nThis one is harder to guess.\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775162232,"trace_id":"4f193c8f0ea2069f6dd5d775067d76db","span_id":"a871447570190e3b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4578,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag go broke tryin'' + to implement OpenTelemetry? ''Twas because they couldn''t trace where all + their doubloons went! Arrr!\\n\\n /giphy horrorscope-with-architecture\\n\\nThere\\u2019s + also a possibility of changing\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762775148189,"trace_id":"3c3e8d4a8cd0aae33ef0027a5c19e3b4","span_id":"735fd724bbbe3952","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5752,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer break + up with their matey? Because they couldn''t handle the heavy cargo of all + that tracing and logging! Arrr!\\n\\n ^^^^^\\n\\nNot So Serious\\n\\nAnnouncing + the Availability of Nitro, Google\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762775136242,"trace_id":"e473d729f7d5db5c60d927a6ca0a1b1a","span_id":"9e296f36cefb00d8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2755,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with Opentelemetry? + Because it couldn''t handle their plunder!\\n\\n\\nOP: Yeaaaaah! Hadn''t had + that one yet! Brilliant\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775123420,"trace_id":"f42ac6589bbfd0f08242005e2f3afdba","span_id":"0d23849ab6f731b2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5067,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it be always tracing their every move, arrr!\\n\\n #prometheusjs #cli\\n\\ny''see, + it''s funny if you\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775108234,"trace_id":"d0c09d5128156cc4529a7cd219177e74","span_id":"2b905d5b1e0a05fd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4258,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag break + up with their mate? Because they couldn''t handle the plunder of their past + traces!\\n\\n Give us your jokes!\\n\\nSignatures\\n\\nA signature is crucial + when talking about the\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775097352,"trace_id":"53704c161358ca33de40f9e98dacd1ee","span_id":"fe35c75530b30e3f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3828,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a compass to + the Opentelemetry conference? To navigate the treacherous waters of telemetry + data and avoid getting lost at sea! Arrrrr!\\n\\n Why did the scallywag bring + a compass to the Opentelemetry conference\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762775082445,"trace_id":"4ed52b5dce9a0d9b4459b812e550a2d2","span_id":"6108e110c68c79c6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3956,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry mate always calm? + ''Tis because they could always trace their steps! Arrr!\\n\\n Happy halloween!\\n\\nHelp + hunt a Hacker\\n\\nCyberMentor\\n\\nTwo\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762775069391,"trace_id":"c1bb2fee1f5214bdd0ea833b989cd566","span_id":"70ba95f88c81d899","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6709,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + matey?\\n\\nBecause they were always tracing their doubloons! Arrr!\\n\\n + \\u2620\\ufe0e\\n\\nNeat! Thanks for sharing - reduce() , map\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775058332,"trace_id":"5d65064c5debc8a60b97170f9baade36","span_id":"1c0aed5b77ed0ebf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4549,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did t'' opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t spyglass where all their doubloons went! Arrr!\\n\\n\"","total_tokens":458,"span_count":34},{"environment":"prd","timestamp":1762775042772,"trace_id":"6d9d5003dc3b6373b754e57265279af3","span_id":"c717d054a870a88d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4964,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go swashbuckled? + Because they kept losing track of their traces, arrr!\\n\\n?\\n\\n(If you + don''t get that last part, please remember to consult Michael\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775030940,"trace_id":"c935cf2fdd4f60ce52d8658bf97f9ed7","span_id":"345ed542ef29c4a9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3605,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry? + ''Twas no good in keepin'' their trace affection! Arrr!\\n\\n These were bad. + Come up with your own \\\"Who''s the guy?\\\".\\n\\n\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762775018965,"trace_id":"0562c00381455e099e31a58f12a478eb","span_id":"061144036f690db3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3915,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer walk + the plank with their matey? Because they couldn''t handle the constant tracking! + Arrr!\\n\\n Only shamrock you''re on a ship! Thank you, thank you, I\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775002814,"trace_id":"bc9ef653dff2509884f4466d406ac947","span_id":"b0057f7dff90c15b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag scuttle with OpenTelemetry? + ''Cause it couldn''t handle the binding to trackin'' all their booty! Arrr!\\n\\n + Tweets by Sophist Satellites\\n\\nLike, Share, Enjoy\\n\\nSanta Space Crus\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762774988949,"trace_id":"03a9747d7450995fb951c08809218f83","span_id":"bb3c652f72a3c079","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3909,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they spent all their doubloons on traces! Arrr!\\n\\n Chuk!\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762774972534,"trace_id":"046a17988791c4587fcbe5507bc1430e","span_id":"2dfacec9ebf29a68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4048,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye opentelemetry code break up with + the debugger? Because it couldn''t handle its booty! Arrrgh!\\n\\n Look what + ye crosshatched yourself into! Arrr!\\n\\nThe Yarrr\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762774960034,"trace_id":"7cd645e79ddc8a0aa6c960e2035595de","span_id":"9ab90bca4dd7f84d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6078,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\nBecause + he kept trying to trace his doubloons!\\n\\n\"","total_tokens":404,"span_count":34},{"environment":"prd","timestamp":1762774943829,"trace_id":"2b6942b7519466a82ae9024133f9a72a","span_id":"670b7e94fe6e9f5a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":9820,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go poor? + \\nBecause they always kept spending their traces!\\n\\n \\n\\n\\ud83d\\udc4d\\n\\nGoddamnit + this thread should be frontpaged.\\n\\n\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762768685146,"trace_id":"7de43b9d1fe63737ad41c457d7c9d65f","span_id":"78b6c55a07368872","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4251,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with Opentelemetry? + Because it kept tracking their every plunder!\\n\\n \\ud83c\\udf0a\\n\\nYou + can read the full conversation on HN or Smallest\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762768673834,"trace_id":"f9a19088aecb8c673120549516a0b6be","span_id":"e31fb2f5daa6d585","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4949,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry scallywag + break up with their scallywag matey?\\nArrr, because they couldn''t handle + all the marks of their ex''s past flings!\\n\\n\"","total_tokens":578,"span_count":34},{"environment":"prd","timestamp":1762768656170,"trace_id":"36303e053c26cf96ff2bc263f235e077","span_id":"1ed56dddbab5e857","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3408,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the scallywag part ways with Opentelemetry? + Rotten because it couldn''t handle all the cargo in their sailin''!\\n\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762768647120,"trace_id":"88e36825d45366f487f7c424ddf65505","span_id":"c3e6f960f1ac3306","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3946,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they kept tryin'' to trace their doubloons flow but it always ended + up gettin'' lost in the trace context! Arrr!\\n\\n\\n6callion: CRISTIANOPENTETICALMOMIES!\"","total_tokens":628,"span_count":34},{"environment":"prd","timestamp":1762768636361,"trace_id":"31ec0417c5b66ab64c3ce4daa1a4db85","span_id":"e635edd3e7e8bda3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5932,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they be always tracing their doubloons! Arrr!\\n\\n \\u2620\\ufe0f + #apitweet\\n\\nOpentracing is an open source standard\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762768625672,"trace_id":"bc3cb493dbd4267d8929ecfb869b3696","span_id":"0389ed590a9b9ba7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry? + ''Cause it couldn''t hoist their cargo! Arrr!\\n\\n What does Captain Morgan + call his armored tank? His breastplate! Who was trying\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762768615339,"trace_id":"524d0ebbb4ae332d3df47df4294eb0bf","span_id":"7550c4d8643fb8af","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3461,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag bring + a ladder to the code plunder? Because they heard they needed more tracing! + Arrr!\\n\\n\"","total_tokens":458,"span_count":34},{"environment":"prd","timestamp":1762768604699,"trace_id":"e9de05cc8e2d936c458b850b7961d9b6","span_id":"385d56a06b0995a6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3420,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with their significant other? Because they couldn''t plunder their relationship + back to the source! Arrr!\\n\\n \\u2022 8\\u2014 8(\\n\\n) \\u00f7 0_-_\\u00ac + \\u2227 \\u2227\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762768591787,"trace_id":"94f8864b150ce8d8dc4a3a7eefc25eb9","span_id":"f96ec7543b8ca601","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5807,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy software developer + abandon OpenTelemetry? Because it couldn''t handle the commitment to be following + all those logs!\\n\\n ... OK that''s terrible, I''ll just show myself out.\\n\\n![angry\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762768580980,"trace_id":"4248c4085bf2500b25e3eb13ceaef277","span_id":"0419a239b0c20089","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4413,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag bring + a ladder aboard? Because they heard they needed to trace their steps! Arrr!\\n\\n + Yar! Ye nuclear space galleon has landed, and yer sculled\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762768568221,"trace_id":"296dfea50ee536cf9f54255a2e83fa54","span_id":"099eceeedccd32bf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5892,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause he couldn''t keep track of his doubloons!\\n\\n\\nEyeOfViper: + Good one \\ud83d\\udc4d\\ud83c\\udffc\\ud83d\\ude42\\n\\n\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762768556455,"trace_id":"415f1b00246d28311afe2c5a78d8944d","span_id":"996b32d0e78cdfa0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3232,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the scallywag bring a compass + to the Opentelemetry conference? To help chart a course through all the traces + and spans, matey!\\n\\n\\u2026\\n\\nread more\\n\\nCongratulations to the + anthem tool, and to all of the As\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762768541331,"trace_id":"1539b27904c5725598d3381d37101356","span_id":"f56f6466446e4655","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4484,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke?\\n\\nBecause + they be keepin'' too close an eye on their booty! Arrr!\\n\\n\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762768531574,"trace_id":"7d988c8161af21c7797dbbd2c136b345","span_id":"9b8401fdcb9ab7d2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3805,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag break + up with their tallying device? Because it couldn''t handle their intricate + map-making! Arrr!\\n\\n More Karate Jokes \\ud83d\\ude05\\n\\nfind more terms + in the Go glossary\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762768520279,"trace_id":"cddf266a0f01090a3095f383594319c6","span_id":"2d787e31fcb4c81a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4296,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with their + significant other? They needed more sea for charting their own courses! Arrr!\\n\\n + https://t.co/8dmRWpjyys\\n\\nThe importance of an\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762768506474,"trace_id":"b233228c5377c3e07c143e302158fd91","span_id":"f6e41ee37ad55b43","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4305,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + \\n\\nBecause they couldn''t spy their expenses! Arrr!\\n\\n\\u2026 Continue + reading \\u2192\\n\\nAvataraGarilaka: Prasyunakan Indonesia\\n\\n\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762768492059,"trace_id":"599c3eefb61f865623ee4e5497413e75","span_id":"dba079e88ebbc18f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7012,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog programmer refuse + to use Opentelemetry? Because they be just too closed off to the idea, arrr!\\n\\n + Acabei! Acho que eu assinei a primeira altcoin do mundo\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762768480645,"trace_id":"753bb41fb921430c427d0eae599cd593","span_id":"7aeb84d53a921ea7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4539,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? Because they couldn''t hoist the extra weight of all + their tracks and logs! Arrr!\\n\\n \\ud83d\\ude1c\\n\\nWe are thrilled that + Karka from OpenTelemetry is now\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762768471256,"trace_id":"4ad919060b66de1ca2e2920306627f7f","span_id":"4a6bb4c0d6ab7fd0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3844,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry part ways with Prometheus? + Because they couldn''t bear the burden of being in a forever watched relationship, + arrr matey!\\n\\n (Source: Author suggestion via Hacker News.)\"","total_tokens":494,"span_count":34},{"environment":"prd","timestamp":1762767601020,"trace_id":"3b28406fee5e3668e8fcfe49716348b0","span_id":"f32060cb47256fd6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":862703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? Because they couldn''t bear the weight of their tracing + bond! Arrr!\\n\\n \\ud83c\\udf85\\n\\nDownload WordPress Themes\\nDownload + WordPress Themes Free\\nDownload WordPress Themes\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762767589091,"trace_id":"3e4bddcc162dcb5e9d61ca0f13a6d40e","span_id":"7d9943c5149c6d5c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3966,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go broke? \\n\\nBecause they be always tracing their doubloons but never following + them! Arrr!\\n\\n \\n(BONUS: Why also are they booted from the Proulx crypt\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762767577359,"trace_id":"44aa5e0e02cdbaa6822f327ceaacab0d","span_id":"97d97c1945a15375","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3637,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t trace where all their doubloons went! Arrr!\\n\\n Joining Ambassador + stem here to discuss this blog post are Ambassador engineers Ryan Howlett\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762767556094,"trace_id":"93c7f8b17b9e78bc6e31886ed82a28df","span_id":"f151bd39a6d4a9ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":14131,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag developer part + ways with OpenTelemetry? ''Cause it be spyin'' on their every step!\\n\\n + (By using insecure allusions, winky faces and convoluted exchanges,\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762767541619,"trace_id":"46da14cc0e888b437ae052e8216b2964","span_id":"e74810af8183eae5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5100,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog programmer part ways + with opentelemetry? Because it couldn''t handle their treasure chest o'' baggage! + Arrr!\\n\\n Absurd as the old joke is, I''m gonna stump you guys with an\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762767530261,"trace_id":"e6957a531007781f3dc5b46ac14f18b7","span_id":"10da02aaa3eb7031","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3502,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag data engineer get stuck + in a loop with Opentelemetry? Because they couldn''t trace their way out, + arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762767208369,"trace_id":"c5defbf252a0379e134fbf68756f817d","span_id":"0f1290030ce9e480","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4611,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? ''Cause they couldn''t juggle all the loot of their + traces and metrics! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\nInquisitorially: + If this\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762767193128,"trace_id":"0e51e5aea5db604327ea357986d2d71e","span_id":"ac60641dad354de3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemat''ry code break up + wit'' th'' debugging tool? \\n\\nBecause it couldn''t handle its baggage, + arrr!\\n\\n \\n\\n=PBs. :) \\n\\nLove, J.D. \\n\\n JVM Languages Inst\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762767183015,"trace_id":"006b799159008f75f18b05bbcf180d68","span_id":"a6d47187810c52a3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4636,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy programmer bring + a ruler to the Opentelemetry conference?\\nBecause they heard they were measuring + up to some serious data performance!\\n\\n Arr!\\n\\nCollapse Expand \\n\\nIt''s + been a long time since I did anything with\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762767166056,"trace_id":"d2bd4ed1ce17212dc63a699f343eb6c3","span_id":"721a11af38cd3267","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3136,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the developer part ways with OpenTelemetry? + ''Twas because it couldn''t be handling their baggage! Arrr!\\n\\n #Foster + #SkepticalAutometry\\n\\nThe system should possess authority (\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762767151563,"trace_id":"df19e0f72f25e440699a73fbb87babe5","span_id":"a63d9f4ac5921efd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4379,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry data refuse to + go to the pirate party? Because it be already being traced! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nGot + others? \\ud83d\\ude42\\n\\nIn \"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762767138271,"trace_id":"aa2dc9f6daf4f681c1fbea2fbd48ab3e","span_id":"8bdcd39d7563ae91","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3785,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry framework go to + therapy, ye ask?\\n\\nBecause it couldn''t handle all the tracin'' and baggage + it was carryin''! Arrr!\\n\\n \\ud83d\\ude09\\ud83c\\udfa9\\n\\nMaybe if you + were to request it via an RFC,\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762767120937,"trace_id":"39051439cea065e1518f501c5bf5b0df","span_id":"2700b97e5faca561","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5201,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, matey! Why did the Opentelemetry scallywag + part ways with their debugger? Because they couldn''t handle the trace! Arrr!\\n\\n + Yarrrr! Argh! Those are a few relevant signature ideas.\\n\\n\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762767107353,"trace_id":"5a5fd7ee5f9df6ea60491e21b62302bc","span_id":"a8471585a0de02f9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4265,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler part + ways with their mate? Because they couldn''t bear the weight of all the loot + they were lugging around! Arrr!\\n\\n What do you call a fedex driver''s contraband? + What do you\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762767095084,"trace_id":"b2a9e9d6b4a0186bb30ea639cdfbd4fa","span_id":"be5e5278842898d3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3969,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + opentelemetry? Because it couldn''t bear their heavy plunder! Arrr!\\n\\n + { \\\"props\\\": {\\n\\n\\\"name\\\": \\\"sawson\\\", \\\"context\\\": {\\n\\n\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762767080930,"trace_id":"42524bbe9ce55e2f0b8a340b92dd8bfe","span_id":"0e190235323adc2b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + Opentelemetry? Because it was just too clingy and always wanted to trace their + every move, arrr!\\n\\n (random number generator)\\n\\nAhoy argh matey! (random + number generator\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762767067940,"trace_id":"ea3682f636493706cb76833038f20222","span_id":"efc060486cdd2282","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3657,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag get lost in the woods + using opentelemetry? Because they kept tracing their steps, arrr!\\n\\n \\u26f5\\ufe0f\\n\\nFun + facts\\n\\nOP5 was the OP8 of the\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762767053756,"trace_id":"a650f773584d08fb3407a34f80e0fe4d","span_id":"4e9282ee9b5c6a90","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4533,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developers go to + therapy? Because they couldn''t be replacin'' their problems back to the source, + matey! Arrrgh!\\n\\n newton I just finished coding my annual MVP award submission + for work. Can anyone\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762767036582,"trace_id":"dfe853ff8020edf5a8376ad535b6338d","span_id":"a423708403cc9931","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6587,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer break up with + OpenTelemetry? ''Cause it just couldn''t commit to a stable matey-ship! Arrr!\\n\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762767025184,"trace_id":"958b28157347a1a3270a113bbc9a39b6","span_id":"7c2f378b748c9777","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5910,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with its lass? Because it couldn''t handle all the booty she was hoarding! + Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762767015388,"trace_id":"acd3840bb089cf42d9a79e1f30035502","span_id":"7403b41bdce4bc26","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3155,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + Opentelemetry? \\n\\nBecause it couldn''t handle their booty!\\n\\n \\n^(*This + joke even scans well with the gender of the joke-teller\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762767003971,"trace_id":"78a9299d29178336277ce6bcb67a5ddf","span_id":"001a3214635e9fb1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5009,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + \\n\\nBecause they kept losing their traces! Arrrr!\\n\\n\\nMockingJNotable: + Why did the bush of opentracing bear\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762766979117,"trace_id":"9002b67b15f0e3797a56caa8f16722ab","span_id":"6799dbbd52730301","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":15098,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr matey, why did the data center be breakin'' + up with Opentelemetry? ''Cause it couldn''t handle all the baggage it be bringin'' + along!\\n\\n\"","total_tokens":506,"span_count":34},{"environment":"prd","timestamp":1762766964773,"trace_id":"5e3c7805592eb4131fa9ca541199e18e","span_id":"3ef079d3a21c1be6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4063,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library maroon + the codebase? Because it couldn''t handle its plunder! Arrr!\\n\\n Okay, okay, + my jokes are embarrassingly dumb. ;-)\\n\\nAlas,\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762766955127,"trace_id":"9ff9f89ae76890d1794c359b04916d58","span_id":"1f0a59bde66a6bda","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2845,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry pirate go broke?\\n\\nBecause + they were always charting their doubloons!\\n\\n Takes a second to commit + but once you''ve got a sustainable funding model, you\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762766944011,"trace_id":"57f552e5018b977b41732e082aba1470","span_id":"16dba6737cd3f81b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3780,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle the weight of all that + tracing and monitoring in their treasure chest! Arrr!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762766932915,"trace_id":"da9521faf73d0c23f335c68bb6725551","span_id":"caca4c21faa4a11f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke?\\n\\nBecause + he was always spending all his traces! Arrr!\\n\\n Aye!\\n\\nI try, at least!\\n\\nHonOURABLE + MENTION\\n\\nLastly\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766921046,"trace_id":"22cbcb5b40a8eecfefe157097c3aa6af","span_id":"413b88f507cdcd3c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4870,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag go to the tavern? Because + they couldn''t stop charting their problems with OpenTelemetry! Arrr!\\n\\n + I see your anchor you lead netwurker. I opt to opt for\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766908285,"trace_id":"09b6318b8bc2578fd82ea7ec6b90a9f5","span_id":"71a5854cafe678bd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2974,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler part + ways with their matey? Because they be wearied of always being tracked back + to their booty! Arrr!\\n\\n submitted by /u/coloquadrilla [link] [comments]\\n\\nCopy\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766897343,"trace_id":"3160c88d93e682f951cd87e4c34e937f","span_id":"0aaeafe9145c2882","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4074,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry scallywag + run out of doubloons? Because he be losin'' his traces at sea!\\n\\n Arrr! + \\n\\nA more risque joke:\\n\\nArrr, do you have\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762766885715,"trace_id":"322dadae4996655f91abfae91e18d2ad","span_id":"b023c24362d15498","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3387,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag split ways with Opentelemetry?\\n\\n''Cause + it was forever tryin'' t'' trace their every move! Arrr!\\n\\n Now that''s + a good joke.\\n\\n[Image] [Defining CNI](\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766874913,"trace_id":"eb1145bf197d2a24246db39ec60d0987","span_id":"4acf30ee78f0c6ef","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4085,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag switch to usin'' Opentelemetry? + \\n\\nBecause it be the only thin'' that could trace his rotten code!\\n\\n + \\n\\nWo ho ho!\\n \\n\\noriginal comment by iainc on 2021\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762766863851,"trace_id":"cdfe9fe01d2639bb950bb2efe86b5e5a","span_id":"03d583dc52b1fded","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3902,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a spyglass to + work with Opentelemetry? To help him spy all the tiny bugs! Arrr!\\n\\n \\n\\nBy + standardizing the definition of requests, spans, traces, and metrics in\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766847062,"trace_id":"4f3bd9f0f658e5a6e3000b6e48dac967","span_id":"4a4ac677e902b250","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5810,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy programmer bring a map + to the Opentelemetry conference? Because they heard they be tracing some serious + paths! Arrr!\\n\\n...\\n\\nRead More\\n\\nEver keen to fling yourself into + the vast embrace of monitoring\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766836090,"trace_id":"3d8f0808433b5d4eb5cad25e06f35645","span_id":"8807e3a770b70f09","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3465,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag sever ties with Opentelemetry? + ''Cause it couldn''t bear their plunder! Arrr!\\n\\n \\ud83d\\ude0e\\n\\nThis + is all for jelious!\\n\\nI still need to talk to\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766825982,"trace_id":"29bbc06aee05d1a3cb85f9e177d58d45","span_id":"e71f00df5c8c60ab","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4796,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with their + wench? Because she couldn''t handle all the plunder they were carrying! Arrr!\\n\\n + Why did Opentelemetry break up with their wench? Because she couldn''t\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766814928,"trace_id":"0392f2c1e8742ec8d9a00531b5e78ab1","span_id":"8fe91c1d8dea5ca6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4386,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did Opentelemetry break up wit'' + its lass? Because it couldn''t handle all the booty she be carryin'' around! + Arrrrr!\\n\\n M''lady! I know arrrr ticket to your heart!\\n\\nAhoy,\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762766799080,"trace_id":"8e1a287af097dafef65ca6e081a1ca33","span_id":"ec75cc01f4bd09d4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5810,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry data decide to + become a stand-up buccaneer? Because it always knows how to sail a good line! + Arrr!\\n\\n - The Edge confusionism\\n\\nInsert funny reaction\\n\\nCreate + your own thread! !\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766787717,"trace_id":"771a95352d415f2d6312356d8c21a837","span_id":"bf9960ce30b6178e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4735,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with its wench? + Because it couldn''t handle her loot!\\n\\n \\ud83e\\udd23\\n\\nvar B = function() + {\\r\\n const exampleSchema = new\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762766775995,"trace_id":"2dd7c823137d21968cc0b63235a0ff5c","span_id":"82427d50e2dcf773","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4215,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry cut ties with its reckonin'' + device?\\n\\n''Twas no match for its convoluted data! Arrr!\\n\\n Happy logging.\\n\\nAlex + Shaposhnik\\nPrincipal Architect \\nMore posts https://\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762766763696,"trace_id":"f031ce9ce76def6cb74a7d07ef051845","span_id":"d198a37524102fe3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4492,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they kept losing their treasure maps!\\n\\n \\\\*drumroll \\\\* :smoke\\\\_bunny: \\n(R\"","total_tokens":406,"span_count":34},{"environment":"prd","timestamp":1762766747529,"trace_id":"41c1eb7b3be668329e7291e81e6808b5","span_id":"f098c32ae2ea4524","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7563,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + Opentelemetry? ''Twas too much baggage for their partnership to sail smoothly! + Arrr!\\n\\n \\ud83d\\ude02\\n\\nIf you''re looking to quickly create lightweight + HTTP microservices running on\"","total_tokens":490,"span_count":34},{"environment":"prd","timestamp":1762766737392,"trace_id":"bccc0e8c277d7c9e03afecc614105871","span_id":"a5c2af467c4b719c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4149,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be it that the opentelemetry swashbuckler + be partin'' ways with their matey? ''Cause they couldn''t be handlin'' the + trace! Arrr!\\n\\n\"","total_tokens":500,"span_count":34},{"environment":"prd","timestamp":1762766705307,"trace_id":"e0924c37705793a9f874bb6929d2e864","span_id":"c6d683ce74db7d19","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3115,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the opentelemetry scallywag + always calm? Because they could always be tracin'' their steps!\\n\\n (via + Anosmuous)\\n\\nBoth responses to the parody go on to push\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766693313,"trace_id":"6e7d4260b7f00352c5d9cd9eba7ba8dc","span_id":"55d13deaef1ea222","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3979,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag quit using Opentelemetry? + Because it couldn''t handle the stress of always tracking their every move, + arrr!\\n\\n But that prompted inquiries into what really happened, and the + organization had apparently reached a\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766683583,"trace_id":"a805f24dff33eec339fc8979340d9055","span_id":"df91345c1491cb90","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3704,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry swashbuckler part + ways with their calculating contraption? ''Twas no match for their twisted + reckonings! Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762766672584,"trace_id":"e7f9ad3ed53cd935d1228f5fab906982","span_id":"19b4ac5fbbbea5a2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3265,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywags part + ways with the tracing library?\\n\\nBecause it couldn''t handle all the plunder! + Arrr!\\n\\n #opentelemetry\\n\\n\\ud83c\\udfb6 I''m just a poor moose,\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766659833,"trace_id":"107341e233cac60d8e5f0e11ba2ec8bf","span_id":"db28591f66144eae","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4128,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy software engineer bring + a spyglass to view Opentelemetry logs? Because they be wantin'' to see the + trace in \\\"full detail\\\"! Arrr!\\n\\n ARRRRRRR!\\n\\nThe other day I decided + to go back and re-engine\"","total_tokens":592,"span_count":34},{"environment":"prd","timestamp":1762766647952,"trace_id":"0e9ebe182023e619abd2341b5a6e2d58","span_id":"55736856c5bea6a5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3918,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler run + out of doubloons?\\n\\nBecause they be endlessly pathin'' their loot! Arrr!\\n\\n + Phenomenal Patido Patch!\\ufeff\\n\\n(edit) This is the only microp\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766638743,"trace_id":"ac1615d8995f15cc721468463528feff","span_id":"478eeec92d167ade","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3099,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye scallywag break up with Opentelemetry? + Because it couldn''t handle their loot! Arrr!\\n\\n #opentelemetry pic.twitter.com/OomIjf1xYa\\n\\n\\u2014\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766618305,"trace_id":"cb6895054d2b8203173b11e84dade34d","span_id":"70484c211bb83b68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":13491,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry scallywag + go broke? \\n\\nBecause they be sailin'' the high seas tryin'' to trace their + doubloons but always endin'' up with a NullPointerException!\\n\\n \\n\\nFor + more available jokes, use jokes.distillery:compine with the predefined\"","total_tokens":610,"span_count":34},{"environment":"prd","timestamp":1762766607064,"trace_id":"a585d1cbef71724245f30ff77b49bf0b","span_id":"01ff2ee4a6b05fb0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4521,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry tool break up with + the tracing software? Because it couldn''t handle all the booty it was carryin''! + Arrr!\\n\\n Argh! More\\nWhen you have muddynotebook, badabit\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762766589487,"trace_id":"23c665692bb0b524db2c8a5b04accb24","span_id":"110518ef137c51f8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4270,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they couldn''t track their doubloons! Arrr!\\n\\n \\\\_ Ok that cracked + me up.\\n\\nTrue story: I got hit on by\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766579148,"trace_id":"ed12d8fd3ee82c819864964679b85f08","span_id":"5be30cdff52d698d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4328,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask?\\n\\nBecause every time they tried to trace their doubloons, it resulted + in a never-ending loop! Arrr!\\n\\n I shall be in my little cave!\\n\\nWorst + Joke Ever? was originally\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762766546086,"trace_id":"93a1d5347329202243e31b4348c1f3cd","span_id":"c64f21fc259cac14","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":24215,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler bring + aboard a ladder?\\nBecause they be told they needed to trace all the steps + in their code, arrr!\\n\\n \\nAlso, why is an Airship named Huckabee? It''s + how many\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766527868,"trace_id":"3f7faad05a9b2527a213a4aafcff7caf","span_id":"540205bd7dad5118","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7740,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did th'' Opentelemetry plunderer bring + a cutlass t'' th'' software conference? \\nT'' sketch out th'' perfect tracin'' + path!\\n\\n (REI)\\n\\nWhy aren''t Oracle''s products conforming to spec? + \\n\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762766514275,"trace_id":"923966753adad02d97cd33c65797a694","span_id":"ddcc6392527e9810","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4247,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry matey go bankrupt?\\n\\nBecause + they be adding tracers left and right, but couldn''t follow any of the trails! + Arrr!\\n\\n\"","total_tokens":500,"span_count":34},{"environment":"prd","timestamp":1762766501105,"trace_id":"6bdd12fba84018d8b7b95ac05ed1ad85","span_id":"7d9b6b4f9e71d769","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6125,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry API go to therapy? + Because it had some serious plunderin'' issues! Arrr!\\n\\n \\n\\nJoin our + worldwide community of Adopters as they break new ground, building monitoring\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762766488354,"trace_id":"a0ccabc30f2092d584cedddc5ee16f00","span_id":"a508717a2efd6686","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3394,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag bring + a plank to the code inspection? \\n\\nTo aid in tracking and spanning the + potential barnacles!\\n\\n \\n \\n \\n\\n---\\n\\nSee and reply to @kestrelci''s + tweets\\n\\nCall\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762766472432,"trace_id":"5fba798ba3ae636db35217a136701330","span_id":"69995cb3bcd9560d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6064,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the buccaneer opentelemetry developer + go broke?\\nBecause he couldn''t spy his plunderin''! Arrr!\\n\\n8\u003e\\n\\n---\\nJoel + Kallman\\nChair, OpenCensus \u0026 Open\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766462109,"trace_id":"44fac01d2202b12bd5c57ab8481e0a08","span_id":"3a0266e15ded9306","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4346,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler bring + a spyglass to work? To ensure their trails be crystal clear! Arrr!\\n\\n Instead + of \\u201c swashbuckler\\u201d you can replace with \\u201cpirate\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766451143,"trace_id":"2ecb96582de209c84a01223282c5ef39","span_id":"1c3dfa1ee470cbc7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4106,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer break + up with their significant other? Because they couldn''t map a course for their + relationship! Arrr!\\n\\n @Weaver\\n\\nsymengine\\n\\nOne of the reasons I + don''t use Swift\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766438503,"trace_id":"b2669e723e000377b165558e38b6b370","span_id":"bc13059e2a3eac4e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4420,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry pirate go plundered + at the comedy ship? Because they couldn''t track where all the laughs were + coming from, arrr!\\n\\n This is what the Jokes page is about. We record our + expansion programming in\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766426947,"trace_id":"22a502e3ba4640cb8550bd24d59112aa","span_id":"535e9061c57475c2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4001,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it couldn''t handle their cargo! Arrr!\\n\\nSubscribe here for more + new videos every week. You may like these other hilarious stuff\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766409974,"trace_id":"ff512075a1dc7f8db109f3c460d4924c","span_id":"4d6548183f859bb6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6173,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scalawag bring a compass to work + with Opentelemetry? Because they didn''t want to get lost in all the trace + data, arrr!\\n\\n (I realize pirates aren''t medieval, but it''s good to add + a bit\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766397458,"trace_id":"83a9b1f537bd824286ba572a0ccb54c8","span_id":"472c986da9c3d80d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3842,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog go bankrupt trying + to implement Opentelemetry? Because whenever they tried to trace their treasure, + the tracing just kept looping back on itself! Arrrrr!\\n\\n What did the jester + write for ur warning on NLTM to warn freelance gr\"","total_tokens":598,"span_count":34},{"environment":"prd","timestamp":1762766386607,"trace_id":"e110b2c3688c31b85b38a1c5ccc952ae","span_id":"b8b297a14b09c2a3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3979,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with its mate? Because it couldn''t handle the booty of all that tracing! + Arrr!\\n\\n \\ud83d\\udc27\\n\\nAll kidding aside, the joke isn''t as funny + without it\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766375242,"trace_id":"54c41c0f29e39655e10472914fb897b0","span_id":"acf148ee35b14ec3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4060,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy opentelemetry scallywag + go broke? Because they kept trying to trace their doubloons! Arrr!\\n\\n\"","total_tokens":440,"span_count":34},{"environment":"prd","timestamp":1762766361069,"trace_id":"ff9954a1a436c4660e1fcf19a3c2895a","span_id":"4c98de470c673f60","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4730,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Cause it couldn''t keep up with its tracing! Arrrrr!\\n\\n \\ud83c\\udfa3 + New features coming to Jaeger When scheduling tests, there was no\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766348962,"trace_id":"36f8170538635117592d8b591f42481c","span_id":"d59e908a6bef9ec8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3513,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry keelhaul its ex? Because + it couldn''t chart the relationship!\\n\\n https://vanberchammer.com/2021/03/23/opente\"","total_tokens":406,"span_count":34},{"environment":"prd","timestamp":1762766335936,"trace_id":"4c298761c5f0187152fe859644574096","span_id":"6bb5a767b367110f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3670,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask?\\n\\nBecause they were always tracing their doubloons! Arrr!\\n\\n + \\ud83d\\ude2c\\n\\nsigned,\\n\\nBeat OPTLANG +OPTINSTRUME +OPTMET\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766320329,"trace_id":"351f98125fee646fc59789c0b80b05f9","span_id":"e5cc6c8fd8b72ce2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6183,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke? + \\n\\nBecause they couldn''t spy on their own plunder!\\n\\n\\nCustomMmmMiracle: + This is the level I''m at as well\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766307801,"trace_id":"47621a53bf4623cbca68665f0d843c8c","span_id":"90b4d1a01a4ad06e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5099,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry?\\nBecause + it couldn''t handle the weight of tracking all their troubles! Arrr!\\n\\n + \\n\\nIn all seriouness, clear tracing doesn''t write traces over a period\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766297177,"trace_id":"5798f0bb031aab66432ef7f512853d89","span_id":"3d60851b0d953096","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5111,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the openlemetry shipmate go broke? + \\n\\nBecause they kept followin'' their expenses! Arrr!\\n\\n \\n\"","total_tokens":394,"span_count":34},{"environment":"prd","timestamp":1762766284527,"trace_id":"e5d337b3a16dd632065d9ea855a6b452","span_id":"d777f80d717e728f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4097,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bust? + \\nBecause he spent all his doubloons trying to trace his footsteps!\\n\\n\"","total_tokens":452,"span_count":34},{"environment":"prd","timestamp":1762766262278,"trace_id":"74ea2f500d05dca368bb59903ff89236","span_id":"283e20390a2922d0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler part ways with Opentelemetry? + ''Twas unable to follow their relationship back to the source! Arrr!\\n\\n + Here''s blat :-):\\n\\npublic static void main(String[] args) {\\n Thread\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766243903,"trace_id":"1816fe48cfcc54caa6752d99b640485f","span_id":"6fa6cb2a265c0c29","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":9749,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry programmer go broke, + ye ask? \\n\\n''Cause he couldn''t spy any traces of doubloons! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nMeme aside, I am actually\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766233100,"trace_id":"d78b9c78ef148d108a5682778971a8bf","span_id":"b779a9f4eada13ac","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4944,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry library break + up with its wench? Because it couldn''t handle the cargo \\ud83e\\udd23\\n\\n\\ud83e\\udd23\\ud83e\\udd23\\n\\n\\\"the + library couldn''t handle the cargo\\\"\\n\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766220613,"trace_id":"3bb3d585d762d480371f1035381e4f1d","span_id":"52e075c5aa9df237","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5807,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask? Because every time they tried to trace their doubloons, it just kept + getting lost in the telemetry data! Arrr!\\n\\n You should have seen it coming + if you were paying any attention!\\n\\nEdit: or\"","total_tokens":592,"span_count":34},{"environment":"prd","timestamp":1762766206999,"trace_id":"bdb9d7c79e1cc807fee4c29f0ade340f","span_id":"bdd63372bfb6c620","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7788,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer break + up with their mate? Because they couldn''t commit to tracing the arrr-relationship! + Arrrgh!\\n\\n\\nDafinityshealthy: It''s a fair point though. XRay\"","total_tokens":514,"span_count":34}],"page_size":248,"total_results":248,"next_cursor":"1762766206999"}}' + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:21 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"filters":[{"field":"service.name","operator":"equals","value":"unknown_service","value_type":"string"}],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":20}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '280' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/spans + response: + body: + string: '{"spans":{"data":[],"page_size":0,"total_results":0,"next_cursor":"-1"}}' + headers: + Content-Length: + - '72' + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:21 GMT + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_spans_with_llm_model_filter.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_spans_with_llm_model_filter.yaml new file mode 100644 index 0000000..46d51e3 --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_spans_with_llm_model_filter.yaml @@ -0,0 +1,394 @@ +interactions: +- request: + body: '{"filters":[{"field":"llm.request.model","operator":"equals","value":"gpt-4o-mini","value_type":"string"}],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":200}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '282' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/spans + response: + body: + string: "{\"spans\":{\"data\":[{\"environment\":\"prd\",\"timestamp\":1763273077046,\"trace_id\":\"c4c7e548e1febe34757c208205caa53e\",\"span_id\":\"01e55a77b2a2dce0\",\"parent_span_id\":\"8f466a6f6bb9d33b\",\"trace_state\":\"\",\"span_name\":\"openai.chat\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai.v1\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.headers\":\"None\",\"llm.is_streaming\":\"false\",\"llm.openai.api_base\":\"https://api.openai.com/v1/\",\"llm.openai.system_fingerprint\":\"fp_51db84afab\",\"llm.request.max_tokens\":\"3000\",\"llm.request.model\":\"gpt-4o-mini\",\"llm.request.structured_output_schema\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\",\"llm.request.temperature\":\"0.700000\",\"llm.request.type\":\"chat\",\"llm.response.id\":\"chatcmpl-CcQAIZ9vs66Ad2yBRePDGlr93GdfC\",\"llm.response.model\":\"gpt-4o-mini-2024-07-18\",\"llm.usage.cache_read_input_tokens\":\"0\",\"llm.usage.completion_tokens\":\"2078\",\"llm.usage.prompt_tokens\":\"579\",\"llm.usage.reasoning_tokens\":\"0\",\"llm.usage.total_tokens\":\"2657\",\"llm.vendor\":\"openai\"},\"duration\":43000,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"You + are an expert travel planner who creates detailed, practical itineraries.\",\"llm.prompts.0.role\":\"system\",\"llm.prompts.1.content\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for Brussels.\\n\\nTrip + Details:\\n- Destination: Brussels\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: food\\n- Weather: Current temperature is 10.6\xB0C with overcast + conditions. The forecast for the week includes temperatures ranging from 12.8\xB0C + to 4.1\xB0C, with occasional rain.\\n- Destination Info: Brussels, the capital + of Belgium, is a vibrant city known for its eclectic mix of French and Flemish + culture. The city is famous for its rich history, stunning architecture, and + a gastronomic scene that includes Belgian waffles, chocolates, and a variety + of local beers.\\n\\nCreate a comprehensive itinerary that includes:\\n1. + A catchy trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the moderate budget level and food interests.\\nEach day should have 3-5 activities + with specific times, locations, and helpful notes.\\n\",\"llm.prompts.1.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"{\\\"trip_title\\\":\\\"A + Culinary Journey Through Brussels\\\",\\\"destination\\\":\\\"Brussels\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"\u20AC800\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + and Exploring the Historic Center\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 + AM\\\",\\\"activity\\\":\\\"Check into hotel and freshen up.\\\",\\\"location\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\",\\\"notes\\\":\\\"Moderate hotel + located near the city center.\\\"},{\\\"time\\\":\\\"11:30 AM\\\",\\\"activity\\\":\\\"Visit + the Grand Place, UNESCO World Heritage Site.\\\",\\\"location\\\":\\\"Grand + Place, 1000 Brussels\\\",\\\"notes\\\":\\\"Don't miss the stunning architecture + and the Town Hall.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Chez L\xE9on for traditional moules-frites (mussels and fries).\\\",\\\"location\\\":\\\"Rue + des Bouchers 18, 1000 Brussels\\\",\\\"notes\\\":\\\"A famous spot for seafood + lovers.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Explore the + Manneken Pis statue and its surrounding area.\\\",\\\"location\\\":\\\"Rue + de l'\xC9tuve 46, 1000 Brussels\\\",\\\"notes\\\":\\\"A quirky symbol of Brussels.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a chocolate tasting at Chocopolis.\\\",\\\"location\\\":\\\"Rue + de la Presse 8, 1000 Brussels\\\",\\\"notes\\\":\\\"Sample some of the best + Belgian chocolates.\\\"}],\\\"meals\\\":[\\\"Lunch at Chez L\xE9on\\\",\\\"Dinner + at Le Pain Quotidien, organic fare\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, + Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Art + \\u0026 Culture Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Visit + the Royal Palace of Brussels.\\\",\\\"location\\\":\\\"Place des Palais, 1000 + Brussels\\\",\\\"notes\\\":\\\"Check the opening hours as they can vary.\\\"},{\\\"time\\\":\\\"11:00 + AM\\\",\\\"activity\\\":\\\"Tour the Magritte Museum.\\\",\\\"location\\\":\\\"Rue + de la R\xE9gence 3, 1000 Brussels\\\",\\\"notes\\\":\\\"Features works by + surrealist artist Ren\xE9 Magritte.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Caf\xE9 des Halles for local Belgian dishes.\\\",\\\"location\\\":\\\"Place + de la Bourse 2, 1000 Brussels\\\",\\\"notes\\\":\\\"A lovely caf\xE9 with + a cozy atmosphere.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Stroll + through the Parc du Cinquantenaire.\\\",\\\"location\\\":\\\"Parc du Cinquantenaire, + 1000 Brussels\\\",\\\"notes\\\":\\\"Enjoy the beautiful gardens and archway.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Visit the European Parliament.\\\",\\\"location\\\":\\\"Rue + Wiertz 60, 1047 Brussels\\\",\\\"notes\\\":\\\"Free entry, but check for available + tours.\\\"}],\\\"meals\\\":[\\\"Lunch at Caf\xE9 des Halles\\\",\\\"Dinner + at Restaurant de l'Hotel de Ville, regional specialties\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Belgian + Beer and Waffles\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Join + a beer tasting tour.\\\",\\\"location\\\":\\\"Brussels Beer Project, Rue Antoine + Dansaert 188, 1000 Brussels\\\",\\\"notes\\\":\\\"Sample different Belgian + beers.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch at Delirium + Caf\xE9 for a vast beer selection.\\\",\\\"location\\\":\\\"Impasse de la + Fid\xE9lit\xE9 4, 1000 Brussels\\\",\\\"notes\\\":\\\"Try their famous beer + menu.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Visit the Belgian + Comic Strip Center.\\\",\\\"location\\\":\\\"Rue des Sables 20, 1000 Brussels\\\",\\\"notes\\\":\\\"A + fun take on Belgium's comic strip history.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Indulge + in Belgian waffles at Maison Dandoy.\\\",\\\"location\\\":\\\"Rue Charles + Buls 14, 1000 Brussels\\\",\\\"notes\\\":\\\"Known for their delicious Li\xE8ge + waffles.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Explore the + local shops in the Sablon district.\\\",\\\"location\\\":\\\"Sablon, 1000 + Brussels\\\",\\\"notes\\\":\\\"A chic area with antique shops and chocolatiers.\\\"}],\\\"meals\\\":[\\\"Lunch + at Delirium Caf\xE9\\\",\\\"Dinner at Chez L\xE9on (again, for the moules-frites)\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":4,\\\"date\\\":\\\"2023-10-04\\\",\\\"title\\\":\\\"Day + Trip to Ghent\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Take + a train to Ghent.\\\",\\\"location\\\":\\\"Brussels Central Station\\\",\\\"notes\\\":\\\"Trains + run frequently; buy tickets at the station.\\\"},{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Visit + Gravensteen Castle.\\\",\\\"location\\\":\\\"Sint-Veerleplein 11, 9000 Ghent\\\",\\\"notes\\\":\\\"Explore + the medieval castle.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at De Graslei, riverside dining.\\\",\\\"location\\\":\\\"Graslei 7, 9000 + Ghent\\\",\\\"notes\\\":\\\"Enjoy local dishes with a view.\\\"},{\\\"time\\\":\\\"2:00 + PM\\\",\\\"activity\\\":\\\"Stroll through the historic center and visit St. + Bavo's Cathedral.\\\",\\\"location\\\":\\\"Sint-Baafsplein 1, 9000 Ghent\\\",\\\"notes\\\":\\\"Home + of the famous Ghent Altarpiece.\\\"},{\\\"time\\\":\\\"4:00 PM\\\",\\\"activity\\\":\\\"Try + local beer at a Ghent brewery.\\\",\\\"location\\\":\\\"Brouwerij Gruut, 9000 + Ghent\\\",\\\"notes\\\":\\\"Unique brewery with its own beer style.\\\"},{\\\"time\\\":\\\"6:00 + PM\\\",\\\"activity\\\":\\\"Return to Brussels.\\\",\\\"location\\\":\\\"Brussels + Central Station\\\",\\\"notes\\\":\\\"Trains run until late.\\\"}],\\\"meals\\\":[\\\"Lunch + at De Graslei\\\",\\\"Dinner at Le Pain Quotidien (again for delicious organic + options)\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, Rue de l'Amigo 1-3, 1000 + Brussels\\\"},{\\\"day_number\\\":5,\\\"date\\\":\\\"2023-10-05\\\",\\\"title\\\":\\\"Markets + and Local Flavors\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Visit + the Midi Market (open on Thursdays).\\\",\\\"location\\\":\\\"Place du Midi, + 1060 Brussels\\\",\\\"notes\\\":\\\"A vibrant market with local produce and + street food.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Try + various cheese samples at Fromagerie de la Place.\\\",\\\"location\\\":\\\"Place + du Ch\xE2telain, 1050 Brussels\\\",\\\"notes\\\":\\\"A delightful cheese shop.\\\"},{\\\"time\\\":\\\"1:00 + PM\\\",\\\"activity\\\":\\\"Lunch at Les Brigittines, local cuisine.\\\",\\\"location\\\":\\\"Place + de la Chapelle 5, 1000 Brussels\\\",\\\"notes\\\":\\\"Known for hearty Belgian + dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Explore the + Marolles district and its vintage shops.\\\",\\\"location\\\":\\\"Marolles, + 1000 Brussels\\\",\\\"notes\\\":\\\"Great for thrift shopping and unique finds.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Enjoy a beer at a local tavern, Caf\xE9 Belga.\\\",\\\"location\\\":\\\"Place + Eug\xE8ne Flagey, 1050 Brussels\\\",\\\"notes\\\":\\\"A lively spot to unwind.\\\"}],\\\"meals\\\":[\\\"Lunch + at Les Brigittines\\\",\\\"Dinner at Chez L\xE9on (to try other menu items)\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":6,\\\"date\\\":\\\"2023-10-06\\\",\\\"title\\\":\\\"Culinary + Delights\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Take + a cooking class to learn Belgian cuisine.\\\",\\\"location\\\":\\\"Brussels + Cooking Classes, Rue des Bouchers 9, 1000 Brussels\\\",\\\"notes\\\":\\\"Pre-booking + is recommended.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Enjoy + the meal you've prepared during the class.\\\",\\\"location\\\":\\\"Brussels + Cooking Classes\\\",\\\"notes\\\":\\\"A unique lunch experience.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Visit the Atomium, an iconic building.\\\",\\\"location\\\":\\\"Avenue + de l'Atomium, 1020 Brussels\\\",\\\"notes\\\":\\\"Check out the exhibition + inside.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Explore Mini-Europe, + right next to Atomium.\\\",\\\"location\\\":\\\"Bruparck, 1020 Brussels\\\",\\\"notes\\\":\\\"A + miniature park with famous European landmarks.\\\"}],\\\"meals\\\":[\\\"Lunch + at cooking class\\\",\\\"Dinner at La Roue d'Or, known for local favorites\\\"],\\\"accommodation\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\"},{\\\"day_number\\\":7,\\\"date\\\":\\\"2023-10-07\\\",\\\"title\\\":\\\"Departure + Day\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Last-minute + shopping in the Galeries Royales Saint-Hubert.\\\",\\\"location\\\":\\\"Galeries + Royales Saint-Hubert, 1000 Brussels\\\",\\\"notes\\\":\\\"Beautiful shopping + arcade.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit the + Royal Museums of Fine Arts of Belgium.\\\",\\\"location\\\":\\\"Rue de la + R\xE9gence 3, 1000 Brussels\\\",\\\"notes\\\":\\\"Explore the vast collection + of art.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch at Le + Pain Quotidien, a final taste of organic dishes.\\\",\\\"location\\\":\\\"Multiple + locations\\\",\\\"notes\\\":\\\"Great ambiance for your last meal.\\\"},{\\\"time\\\":\\\"3:00 + PM\\\",\\\"activity\\\":\\\"Check out from hotel and head to the airport.\\\",\\\"location\\\":\\\"Hotel + Amigo, Rue de l'Amigo 1-3, 1000 Brussels\\\",\\\"notes\\\":\\\"Plan for travel + time to airport.\\\"}],\\\"meals\\\":[\\\"Lunch at Le Pain Quotidien\\\",\\\"Dinner + on the flight\\\"],\\\"accommodation\\\":\\\"Hotel Amigo, Rue de l'Amigo 1-3, + 1000 Brussels\\\"}],\\\"travel_tips\\\":[\\\"Purchase a Brussels Card for + discounts on entrance fees and public transport.\\\",\\\"Always try to learn + a few basic French or Flemish phrases, it's appreciated by locals.\\\",\\\"Keep + an umbrella or raincoat handy due to unpredictable weather.\\\"],\\\"packing_suggestions\\\":[\\\"Comfortable + walking shoes for exploring the city.\\\",\\\"Layers to adjust to changing + temperatures throughout the day.\\\",\\\"A light waterproof jacket or umbrella + for occasional rain.\\\"]}\",\"llm.completions.0.finish_reason\":\"stop\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763272985581,\"trace_id\":\"f53581d7de2b03275fad361fd5a2a9fe\",\"span_id\":\"b7bca658fb4eaed9\",\"parent_span_id\":\"bd891d7c9529c5d0\",\"trace_state\":\"\",\"span_name\":\"openai.chat\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai.v1\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"error.type\":\"LengthFinishReasonError\",\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.headers\":\"None\",\"llm.is_streaming\":\"false\",\"llm.openai.api_base\":\"https://api.openai.com/v1/\",\"llm.request.max_tokens\":\"3000\",\"llm.request.model\":\"gpt-4o-mini\",\"llm.request.structured_output_schema\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\",\"llm.request.temperature\":\"0.700000\",\"llm.request.type\":\"chat\",\"llm.vendor\":\"openai\"},\"duration\":64758,\"status_code\":\"STATUS_CODE_ERROR\",\"status_message\":\"Could + not parse response content as the length limit was reached - CompletionUsage(completion_tokens=3000, + prompt_tokens=579, total_tokens=3579, completion_tokens_details=CompletionTokensDetails(accepted_prediction_tokens=0, + audio_tokens=0, reasoning_tokens=0, rejected_prediction_tokens=0), prompt_tokens_details=PromptTokensDetails(audio_tokens=0, + cached_tokens=0))\",\"prompts\":{\"llm.prompts.0.content\":\"You are an expert + travel planner who creates detailed, practical itineraries.\",\"llm.prompts.0.role\":\"system\",\"llm.prompts.1.content\":\"\\nYou + are an expert travel planner. Create a detailed 14-day itinerary for Istanbul.\\n\\nTrip + Details:\\n- Destination: Istanbul\\n- Duration: 14 days\\n- Budget: luxury\\n- + Interests: culture\\n- Weather: Current temperature: 12.1\xB0C, Partly cloudy. + Upcoming days: Mild temperatures ranging from 16.4\xB0C to 20.2\xB0C, mostly + dry.\\n- Destination Info: Istanbul is the largest city in Turkey, a cultural + and historical heart, straddling two continents. Known for its rich history, + diverse culture, and vibrant economy, Istanbul offers experiences across its + European and Asian parts and is famous for its unique position along the Bosphorus + strait.\\n\\nCreate a comprehensive itinerary that includes:\\n1. A catchy + trip title\\n2. Day-by-day plans with specific activities and timings\\n3. + Meal recommendations for each day\\n4. Accommodation suggestions\\n5. Travel + tips specific to this destination\\n6. Packing suggestions based on the weather + and activities\\n\\nMake the itinerary practical, engaging, and tailored to + the luxury budget level and culture interests.\\nEach day should have 3-5 + activities with specific times, locations, and helpful notes.\\n\",\"llm.prompts.1.role\":\"user\"},\"completions\":{},\"input\":\"\",\"output\":\"\"},{\"environment\":\"prd\",\"timestamp\":1763272934506,\"trace_id\":\"83ba2d50d52cac29534deeb6f0197b60\",\"span_id\":\"7c0721b2051c4bf5\",\"parent_span_id\":\"43ea1c743c0a7ff8\",\"trace_state\":\"\",\"span_name\":\"openai.chat\",\"span_kind\":\"SPAN_KIND_CLIENT\",\"service_name\":\"travel-agent-demo2\",\"resource_attributes\":{\"service.name\":\"travel-agent-demo2\",\"telemetry.sdk.language\":\"python\",\"telemetry.sdk.name\":\"opentelemetry\",\"telemetry.sdk.version\":\"1.38.0\"},\"scope_name\":\"opentelemetry.instrumentation.openai.v1\",\"scope_version\":\"0.47.5\",\"span_attributes\":{\"llm.agent.name\":\"Travel + Planner Agent\",\"llm.headers\":\"None\",\"llm.is_streaming\":\"false\",\"llm.openai.api_base\":\"https://api.openai.com/v1/\",\"llm.openai.system_fingerprint\":\"fp_51db84afab\",\"llm.request.max_tokens\":\"3000\",\"llm.request.model\":\"gpt-4o-mini\",\"llm.request.structured_output_schema\":\"{\\\"$defs\\\": + {\\\"DayActivity\\\": {\\\"properties\\\": {\\\"time\\\": {\\\"title\\\": + \\\"Time\\\", \\\"type\\\": \\\"string\\\"}, \\\"activity\\\": {\\\"title\\\": + \\\"Activity\\\", \\\"type\\\": \\\"string\\\"}, \\\"location\\\": {\\\"title\\\": + \\\"Location\\\", \\\"type\\\": \\\"string\\\"}, \\\"notes\\\": {\\\"title\\\": + \\\"Notes\\\", \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"time\\\", + \\\"activity\\\", \\\"location\\\", \\\"notes\\\"], \\\"title\\\": \\\"DayActivity\\\", + \\\"type\\\": \\\"object\\\"}, \\\"DayPlan\\\": {\\\"properties\\\": {\\\"day_number\\\": + {\\\"title\\\": \\\"Day Number\\\", \\\"type\\\": \\\"integer\\\"}, \\\"date\\\": + {\\\"title\\\": \\\"Date\\\", \\\"type\\\": \\\"string\\\"}, \\\"title\\\": + {\\\"title\\\": \\\"Title\\\", \\\"type\\\": \\\"string\\\"}, \\\"activities\\\": + {\\\"items\\\": {\\\"$ref\\\": \\\"#/$defs/DayActivity\\\"}, \\\"title\\\": + \\\"Activities\\\", \\\"type\\\": \\\"array\\\"}, \\\"meals\\\": {\\\"items\\\": + {\\\"type\\\": \\\"string\\\"}, \\\"title\\\": \\\"Meals\\\", \\\"type\\\": + \\\"array\\\"}, \\\"accommodation\\\": {\\\"title\\\": \\\"Accommodation\\\", + \\\"type\\\": \\\"string\\\"}}, \\\"required\\\": [\\\"day_number\\\", \\\"date\\\", + \\\"title\\\", \\\"activities\\\", \\\"meals\\\", \\\"accommodation\\\"], + \\\"title\\\": \\\"DayPlan\\\", \\\"type\\\": \\\"object\\\"}}, \\\"properties\\\": + {\\\"trip_title\\\": {\\\"title\\\": \\\"Trip Title\\\", \\\"type\\\": \\\"string\\\"}, + \\\"destination\\\": {\\\"title\\\": \\\"Destination\\\", \\\"type\\\": \\\"string\\\"}, + \\\"duration_days\\\": {\\\"title\\\": \\\"Duration Days\\\", \\\"type\\\": + \\\"integer\\\"}, \\\"total_budget_estimate\\\": {\\\"title\\\": \\\"Total + Budget Estimate\\\", \\\"type\\\": \\\"string\\\"}, \\\"daily_plans\\\": {\\\"items\\\": + {\\\"$ref\\\": \\\"#/$defs/DayPlan\\\"}, \\\"title\\\": \\\"Daily Plans\\\", + \\\"type\\\": \\\"array\\\"}, \\\"travel_tips\\\": {\\\"items\\\": {\\\"type\\\": + \\\"string\\\"}, \\\"title\\\": \\\"Travel Tips\\\", \\\"type\\\": \\\"array\\\"}, + \\\"packing_suggestions\\\": {\\\"items\\\": {\\\"type\\\": \\\"string\\\"}, + \\\"title\\\": \\\"Packing Suggestions\\\", \\\"type\\\": \\\"array\\\"}}, + \\\"required\\\": [\\\"trip_title\\\", \\\"destination\\\", \\\"duration_days\\\", + \\\"total_budget_estimate\\\", \\\"daily_plans\\\", \\\"travel_tips\\\", \\\"packing_suggestions\\\"], + \\\"title\\\": \\\"TravelItinerary\\\", \\\"type\\\": \\\"object\\\"}\",\"llm.request.temperature\":\"0.700000\",\"llm.request.type\":\"chat\",\"llm.response.id\":\"chatcmpl-CcQ81k3O0od5vXG0MituaDkAIuIie\",\"llm.response.model\":\"gpt-4o-mini-2024-07-18\",\"llm.usage.cache_read_input_tokens\":\"0\",\"llm.usage.completion_tokens\":\"1604\",\"llm.usage.prompt_tokens\":\"592\",\"llm.usage.reasoning_tokens\":\"0\",\"llm.usage.total_tokens\":\"2196\",\"llm.vendor\":\"openai\"},\"duration\":33431,\"status_code\":\"STATUS_CODE_UNSET\",\"status_message\":\"\",\"prompts\":{\"llm.prompts.0.content\":\"You + are an expert travel planner who creates detailed, practical itineraries.\",\"llm.prompts.0.role\":\"system\",\"llm.prompts.1.content\":\"\\nYou + are an expert travel planner. Create a detailed 7-day itinerary for New Zealand.\\n\\nTrip + Details:\\n- Destination: New Zealand\\n- Duration: 7 days\\n- Budget: moderate\\n- + Interests: food\\n- Weather: Current temperature in New Zealand is 12.1\xB0C + with mainly clear conditions. The forecast includes temperatures ranging from + 14.3\xB0C to 22.9\xB0C and some rain over the next week.\\n- Destination Info: + New Zealand is an island country in the southwestern Pacific Ocean, known + for its stunning landscapes and diverse culture. It's composed of two main + islands and over 600 smaller islands. The capital city is Wellington, with + Auckland being the most populous city. New Zealand offers a variety of cuisines + influenced by its rich cultural heritage.\\n\\nCreate a comprehensive itinerary + that includes:\\n1. A catchy trip title\\n2. Day-by-day plans with specific + activities and timings\\n3. Meal recommendations for each day\\n4. Accommodation + suggestions\\n5. Travel tips specific to this destination\\n6. Packing suggestions + based on the weather and activities\\n\\nMake the itinerary practical, engaging, + and tailored to the moderate budget level and food interests.\\nEach day should + have 3-5 activities with specific times, locations, and helpful notes.\\n\",\"llm.prompts.1.role\":\"user\"},\"completions\":{\"llm.completions.0.content\":\"{\\\"trip_title\\\":\\\"Taste + of New Zealand: A Culinary Journey\\\",\\\"destination\\\":\\\"New Zealand\\\",\\\"duration_days\\\":7,\\\"total_budget_estimate\\\":\\\"$1,500\\\",\\\"daily_plans\\\":[{\\\"day_number\\\":1,\\\"date\\\":\\\"2023-10-01\\\",\\\"title\\\":\\\"Arrival + in Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"10:00 AM\\\",\\\"activity\\\":\\\"Arrive + in Auckland\\\",\\\"location\\\":\\\"Auckland Airport\\\",\\\"notes\\\":\\\"Check + in to your accommodation and freshen up.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at the Federal Delicatessen\\\",\\\"location\\\":\\\"Auckland CBD\\\",\\\"notes\\\":\\\"Enjoy + a modern take on classic deli food.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Visit + Auckland Art Gallery\\\",\\\"location\\\":\\\"Auckland CBD\\\",\\\"notes\\\":\\\"Explore + New Zealand's most extensive collection of national and international art.\\\"},{\\\"time\\\":\\\"5:00 + PM\\\",\\\"activity\\\":\\\"Sky Tower Visit\\\",\\\"location\\\":\\\"Auckland + CBD\\\",\\\"notes\\\":\\\"Enjoy panoramic views of the city at sunset.\\\"},{\\\"time\\\":\\\"7:00 + PM\\\",\\\"activity\\\":\\\"Dinner at The Grove\\\",\\\"location\\\":\\\"Auckland + CBD\\\",\\\"notes\\\":\\\"Fine dining experience focusing on New Zealand cuisine.\\\"}],\\\"meals\\\":[\\\"Lunch + at Federal Delicatessen\\\",\\\"Dinner at The Grove\\\"],\\\"accommodation\\\":\\\"CityLife + Auckland\\\"},{\\\"day_number\\\":2,\\\"date\\\":\\\"2023-10-02\\\",\\\"title\\\":\\\"Exploring + Auckland\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at Best Ugly Bagels\\\",\\\"location\\\":\\\"Auckland CBD\\\",\\\"notes\\\":\\\"Try + their famous bagels.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Ferry + to Waiheke Island\\\",\\\"location\\\":\\\"Auckland Ferry Terminal\\\",\\\"notes\\\":\\\"Enjoy + the scenic ferry ride (approx. 40 mins).\\\"},{\\\"time\\\":\\\"11:30 AM\\\",\\\"activity\\\":\\\"Wine + Tasting at Mudbrick Vineyard\\\",\\\"location\\\":\\\"Waiheke Island\\\",\\\"notes\\\":\\\"Sample + local wines with stunning views.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Oyster Inn\\\",\\\"location\\\":\\\"Waiheke Island\\\",\\\"notes\\\":\\\"Savor + fresh seafood with a view.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Explore + Waiheke Island's beaches\\\",\\\"location\\\":\\\"Waiheke Island\\\",\\\"notes\\\":\\\"Relax + at Oneroa or Palm Beach.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Return + Ferry to Auckland\\\",\\\"location\\\":\\\"Waiheke Island\\\",\\\"notes\\\":\\\"Catch + the ferry back.\\\"},{\\\"time\\\":\\\"7:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Baduzzi\\\",\\\"location\\\":\\\"Auckland CBD\\\",\\\"notes\\\":\\\"Italian + eatery known for its meatballs.\\\"}],\\\"meals\\\":[\\\"Breakfast at Best + Ugly Bagels\\\",\\\"Lunch at The Oyster Inn\\\",\\\"Dinner at Baduzzi\\\"],\\\"accommodation\\\":\\\"CityLife + Auckland\\\"},{\\\"day_number\\\":3,\\\"date\\\":\\\"2023-10-03\\\",\\\"title\\\":\\\"Travel + to Rotorua\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Rotorua\\\",\\\"location\\\":\\\"Auckland to Rotorua\\\",\\\"notes\\\":\\\"Approx. + 3-hour drive.\\\"},{\\\"time\\\":\\\"11:00 AM\\\",\\\"activity\\\":\\\"Visit + Te Puia\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Explore geysers + and Maori culture.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Pavilion\\\",\\\"location\\\":\\\"Te Puia\\\",\\\"notes\\\":\\\"Caf\xE9 + with local dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Relax + at Polynesian Spa\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Enjoy + mineral hot pools.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Atticus Finch\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Contemporary + dining with a focus on local ingredients.\\\"}],\\\"meals\\\":[\\\"Lunch at + The Pavilion\\\",\\\"Dinner at Atticus Finch\\\"],\\\"accommodation\\\":\\\"Novotel + Rotorua Lakeside\\\"},{\\\"day_number\\\":4,\\\"date\\\":\\\"2023-10-04\\\",\\\"title\\\":\\\"Adventure + in Rotorua\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at your hotel\\\",\\\"location\\\":\\\"Novotel Rotorua Lakeside\\\",\\\"notes\\\":\\\"Fuel + up for the day.\\\"},{\\\"time\\\":\\\"9:30 AM\\\",\\\"activity\\\":\\\"Visit + Wai-O-Tapu Thermal Wonderland\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"See + colorful geothermal pools.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Lady Jane's Ice Cream Parlour\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"A + sweet treat and light lunch.\\\"},{\\\"time\\\":\\\"1:30 PM\\\",\\\"activity\\\":\\\"Explore + Redwoods Treewalk\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Walk + among the towering redwoods.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at the Secret Kitchen\\\",\\\"location\\\":\\\"Rotorua\\\",\\\"notes\\\":\\\"Authentic + Asian fusion food.\\\"}],\\\"meals\\\":[\\\"Breakfast at hotel\\\",\\\"Lunch + at Lady Jane's\\\",\\\"Dinner at Secret Kitchen\\\"],\\\"accommodation\\\":\\\"Novotel + Rotorua Lakeside\\\"},{\\\"day_number\\\":5,\\\"date\\\":\\\"2023-10-05\\\",\\\"title\\\":\\\"Travel + to Wellington\\\",\\\"activities\\\":[{\\\"time\\\":\\\"8:00 AM\\\",\\\"activity\\\":\\\"Drive + to Wellington\\\",\\\"location\\\":\\\"Rotorua to Wellington\\\",\\\"notes\\\":\\\"Approx. + 5-hour drive.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Ortega Fish Shack\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Fresh + seafood in a cozy setting.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + Te Papa Tongarewa\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Explore + New Zealand's national museum.\\\"},{\\\"time\\\":\\\"5:00 PM\\\",\\\"activity\\\":\\\"Explore + Cuba Street\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Check + out shops and street art.\\\"},{\\\"time\\\":\\\"7:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Logan Brown\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Upscale + dining with a focus on local produce.\\\"}],\\\"meals\\\":[\\\"Lunch at Ortega + Fish Shack\\\",\\\"Dinner at Logan Brown\\\"],\\\"accommodation\\\":\\\"InterContinental + Wellington\\\"},{\\\"day_number\\\":6,\\\"date\\\":\\\"2023-10-06\\\",\\\"title\\\":\\\"Wellington + Sights\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at your hotel\\\",\\\"location\\\":\\\"InterContinental Wellington\\\",\\\"notes\\\":\\\"Enjoy + a hearty breakfast.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Visit + the Wellington Botanic Garden\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Take + the cable car up for great views.\\\"},{\\\"time\\\":\\\"1:00 PM\\\",\\\"activity\\\":\\\"Lunch + at The Botanist\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Healthy, + seasonal dishes.\\\"},{\\\"time\\\":\\\"3:00 PM\\\",\\\"activity\\\":\\\"Visit + Zealandia\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Discover + New Zealand's unique wildlife.\\\"},{\\\"time\\\":\\\"6:00 PM\\\",\\\"activity\\\":\\\"Dinner + at Shepherd\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Farm-to-table + dining experience.\\\"}],\\\"meals\\\":[\\\"Breakfast at hotel\\\",\\\"Lunch + at The Botanist\\\",\\\"Dinner at Shepherd\\\"],\\\"accommodation\\\":\\\"InterContinental + Wellington\\\"},{\\\"day_number\\\":7,\\\"date\\\":\\\"2023-10-07\\\",\\\"title\\\":\\\"Departure + from Wellington\\\",\\\"activities\\\":[{\\\"time\\\":\\\"9:00 AM\\\",\\\"activity\\\":\\\"Breakfast + at your hotel\\\",\\\"location\\\":\\\"InterContinental Wellington\\\",\\\"notes\\\":\\\"Final + breakfast in New Zealand.\\\"},{\\\"time\\\":\\\"10:30 AM\\\",\\\"activity\\\":\\\"Last-minute + shopping at Wellington Waterfront\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Pick + up souvenirs.\\\"},{\\\"time\\\":\\\"12:00 PM\\\",\\\"activity\\\":\\\"Lunch + at Sweet Mother's Kitchen\\\",\\\"location\\\":\\\"Wellington\\\",\\\"notes\\\":\\\"Casual + eatery with a vibrant atmosphere.\\\"},{\\\"time\\\":\\\"2:00 PM\\\",\\\"activity\\\":\\\"Check + out and head to airport\\\",\\\"location\\\":\\\"Wellington Airport\\\",\\\"notes\\\":\\\"Ensure + you arrive 2 hours prior to your flight.\\\"}],\\\"meals\\\":[\\\"Breakfast + at hotel\\\",\\\"Lunch at Sweet Mother's Kitchen\\\"],\\\"accommodation\\\":\\\"N/A\\\"}],\\\"travel_tips\\\":[\\\"Book + accommodations in advance, especially in popular areas like Auckland and Rotorua.\\\",\\\"Try + local delicacies such as lamb, seafood, and pavlova dessert.\\\",\\\"Rent + a car for flexibility in exploring the North Island.\\\"],\\\"packing_suggestions\\\":[\\\"Layers + of clothing to adapt to changing temperatures (12\xB0C to 22\xB0C).\\\",\\\"Comfortable + walking shoes for exploring cities and nature.\\\",\\\"A light rain jacket + or umbrella due to the forecasted rain.\\\"]}\",\"llm.completions.0.finish_reason\":\"stop\",\"llm.completions.0.role\":\"assistant\"},\"input\":\"\",\"output\":\"\"}],\"page_size\":3,\"total_results\":3,\"next_cursor\":\"1763272934506\"}}" + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:20 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_basic.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_basic.yaml new file mode 100644 index 0000000..ef50878 --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_basic.yaml @@ -0,0 +1,40 @@ +interactions: +- request: + body: '{"filters":[],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":10}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '188' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/traces/root-spans + response: + body: + string: '{"root_spans":{"data":[{"environment":"prd","timestamp":1763273059770,"trace_id":"c4c7e548e1febe34757c208205caa53e","span_id":"6b3a38f23a58e2ec","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":68638,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":31096,"span_count":16},{"environment":"prd","timestamp":1763272977019,"trace_id":"f53581d7de2b03275fad361fd5a2a9fe","span_id":"51abd109e3f6fc45","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":80747,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":8650,"span_count":20},{"environment":"prd","timestamp":1763272914648,"trace_id":"83ba2d50d52cac29534deeb6f0197b60","span_id":"2c86398dc9615c3a","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":60364,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":25326,"span_count":26}],"page_size":3,"total_results":3,"next_cursor":"1763272914648"}}' + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:18 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_with_duration_filter.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_with_duration_filter.yaml new file mode 100644 index 0000000..d18535f --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_with_duration_filter.yaml @@ -0,0 +1,40 @@ +interactions: +- request: + body: '{"filters":[{"field":"duration","operator":"greater_than_or_equal","value":"100","value_type":"number"}],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":10}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '279' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/traces/root-spans + response: + body: + string: '{"root_spans":{"data":[{"environment":"prd","timestamp":1763273059770,"trace_id":"c4c7e548e1febe34757c208205caa53e","span_id":"6b3a38f23a58e2ec","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":68638,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":31096,"span_count":16},{"environment":"prd","timestamp":1763272977019,"trace_id":"f53581d7de2b03275fad361fd5a2a9fe","span_id":"51abd109e3f6fc45","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":80747,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":8650,"span_count":20},{"environment":"prd","timestamp":1763272914648,"trace_id":"83ba2d50d52cac29534deeb6f0197b60","span_id":"2c86398dc9615c3a","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":60364,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":25326,"span_count":26}],"page_size":3,"total_results":3,"next_cursor":"1763272914648"}}' + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:19 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_with_error_filter.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_with_error_filter.yaml new file mode 100644 index 0000000..988ddcc --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_with_error_filter.yaml @@ -0,0 +1,40 @@ +interactions: +- request: + body: '{"filters":[],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":10}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '188' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/traces/root-spans + response: + body: + string: '{"root_spans":{"data":[{"environment":"prd","timestamp":1763273059770,"trace_id":"c4c7e548e1febe34757c208205caa53e","span_id":"6b3a38f23a58e2ec","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":68638,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":31096,"span_count":16},{"environment":"prd","timestamp":1763272977019,"trace_id":"f53581d7de2b03275fad361fd5a2a9fe","span_id":"51abd109e3f6fc45","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":80747,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":8650,"span_count":20},{"environment":"prd","timestamp":1763272914648,"trace_id":"83ba2d50d52cac29534deeb6f0197b60","span_id":"2c86398dc9615c3a","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":60364,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":25326,"span_count":26}],"page_size":3,"total_results":3,"next_cursor":"1763272914648"}}' + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:19 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_with_generic_filter.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_with_generic_filter.yaml new file mode 100644 index 0000000..7976e5a --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_with_generic_filter.yaml @@ -0,0 +1,40 @@ +interactions: +- request: + body: '{"filters":[{"field":"duration","operator":"greater_than","value":"50","value_type":"number"}],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":10}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '269' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/traces/root-spans + response: + body: + string: '{"root_spans":{"data":[{"environment":"prd","timestamp":1763273059770,"trace_id":"c4c7e548e1febe34757c208205caa53e","span_id":"6b3a38f23a58e2ec","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":68638,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":31096,"span_count":16},{"environment":"prd","timestamp":1763272977019,"trace_id":"f53581d7de2b03275fad361fd5a2a9fe","span_id":"51abd109e3f6fc45","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":80747,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":8650,"span_count":20},{"environment":"prd","timestamp":1763272914648,"trace_id":"83ba2d50d52cac29534deeb6f0197b60","span_id":"2c86398dc9615c3a","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":60364,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":25326,"span_count":26}],"page_size":3,"total_results":3,"next_cursor":"1763272914648"}}' + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:20 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_with_limit.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_with_limit.yaml new file mode 100644 index 0000000..282dcf1 --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_with_limit.yaml @@ -0,0 +1,40 @@ +interactions: +- request: + body: '{"filters":[],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":5}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '187' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/traces/root-spans + response: + body: + string: '{"root_spans":{"data":[{"environment":"prd","timestamp":1763273059770,"trace_id":"c4c7e548e1febe34757c208205caa53e","span_id":"6b3a38f23a58e2ec","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":68638,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":31096,"span_count":16},{"environment":"prd","timestamp":1763272977019,"trace_id":"f53581d7de2b03275fad361fd5a2a9fe","span_id":"51abd109e3f6fc45","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":80747,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":8650,"span_count":20},{"environment":"prd","timestamp":1763272914648,"trace_id":"83ba2d50d52cac29534deeb6f0197b60","span_id":"2c86398dc9615c3a","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":60364,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":25326,"span_count":26}],"page_size":3,"total_results":3,"next_cursor":"1763272914648"}}' + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:19 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_with_service_filter.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_with_service_filter.yaml new file mode 100644 index 0000000..648a1e1 --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopSearchTraces.test_search_traces_with_service_filter.yaml @@ -0,0 +1,846 @@ +interactions: +- request: + body: '{"filters":[],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":1000}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '190' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/traces/root-spans + response: + body: + string: '{"root_spans":{"data":[{"environment":"prd","timestamp":1763273059770,"trace_id":"c4c7e548e1febe34757c208205caa53e","span_id":"6b3a38f23a58e2ec","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":68638,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":31096,"span_count":16},{"environment":"prd","timestamp":1763272977019,"trace_id":"f53581d7de2b03275fad361fd5a2a9fe","span_id":"51abd109e3f6fc45","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":80747,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":8650,"span_count":20},{"environment":"prd","timestamp":1763272914648,"trace_id":"83ba2d50d52cac29534deeb6f0197b60","span_id":"2c86398dc9615c3a","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":60364,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":25326,"span_count":26},{"environment":"prd","timestamp":1763027558008,"trace_id":"29fb03129fc8a5aeabd87def55435f43","span_id":"b205122711ccafe4","parent_span_id":"","trace_state":"","span_name":"traceloop_hub.chat","span_kind":"SPAN_KIND_CLIENT","service_name":"unknown_service","resource_attributes":{"service.name":"unknown_service","telemetry.sdk.language":"rust","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"0.27.1"},"scope_name":"traceloop_hub","scope_version":"","span_attributes":{"llm.request.frequency_penalty":"0.000000","llm.request.model":"gpt-5.1","llm.request.presence_penalty":"0.000000","llm.request.type":"chat","llm.vendor":"openai"},"duration":1312,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{"llm.prompts.0.content":"[{\"type\":\"text\",\"text\":\"explain + who are you and what can you do in one sentence\"}]","llm.prompts.0.role":"user"},"completions":{},"input":"","output":"","total_tokens":0,"span_count":2},{"environment":"prd","timestamp":1762953417208,"trace_id":"e2871b06600cb44f772523756bf99ad3","span_id":"0fd131a789f73d47","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4730,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye Opentelemetry scallywag refuse + to sport spyglasses?\\n\\nBecause they didn''t be wantin'' to be traced! Arrr!\\n\\n + (o_o)\\n\\nHic\\n\\nComment on my pie chart to go far in\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762953408597,"trace_id":"24ea21374323feef794238646e477d79","span_id":"de6df20819872a2c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3531,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they be always trackin'' their doubloons!\\n\\n (vessels)\\n\\n\\u200b\\n\\nKudos + and notes\\n\\nThanks to Challengepost\\n\\n\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762953399257,"trace_id":"8e56c0da1bbc9d38f850465b16f576c8","span_id":"927f3379364fa4a5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5194,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Ye scallywags, why did Opentelemetry go to + therapy?\\n\\nBecause it couldn''t decide what to plunder next! Arrr!\\n\\n + :''(\\n\\nThis week in the community\\n\\nWe\\u2019ll start this week\\u2019s + newsletter with\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762953388540,"trace_id":"7b10976a382a4da03a65d0fe62a577c2","span_id":"ad2847a9be3e29ae","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5514,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry crossin'' the road? + To be tracin'' the chicken''s course! Arrr!\\n\\n Oh, I guess I''m talkin'' + about Service Ubiquity Syb\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762953379719,"trace_id":"bcd7b1d8768b317dd242bd94eb7408b3","span_id":"3e118324957da813","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4335,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the opentelemetry project gettin'' + invited to all the parties? ''Cause it always knows how to trace the best + route to the dance floor, matey! Arrr!\\n\\n Could do with some more like + these, the game is fun but too few (\"","total_tokens":600,"span_count":34},{"environment":"prd","timestamp":1762953370495,"trace_id":"3b4bb9514dd569958055552049300802","span_id":"cba3c553393323d0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4266,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer part + ways with their matey? ''Twas unable to handle the cargo of their relationship! + Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nDocker Templates\\n\\nDocker''s\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762953353515,"trace_id":"e7d9bb89558607369072c3c8bd2f12c9","span_id":"4912b5b0e5d356f2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":12292,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle all the loot they were + lugging around! Arrrr!\\n\\n (Ayo, worth looting indeed! ) Nom nom nom (I''m\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762953344499,"trace_id":"30ad2430df17b657c6818f02b0994390","span_id":"86985a4e525f41f0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4048,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry matey break up + with their pirate partner? Because they couldn''t handle all the tracing and + metrics in the pirate ship! Arrr!\\n\\n Why did the https://esa.forholidays.net + friend stop talking to their straw\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762953334595,"trace_id":"56083b53bddc3528a00b43a81eb2e878","span_id":"93ebe98d0f1059c0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4244,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go to Davy Jones'' locker? Because he be keepin'' tryin'' to trace his doubloons! + Arrr!\\n\\n Thanks for the help! https://ocp.opentelemetry.io/faqs/\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762953325299,"trace_id":"ed1db63d39344f6e38c4d065061cee19","span_id":"816b8f401d905b8a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5086,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Cause it couldn''t bear their booty! Arrrgh!\\n\\n And now the joke is over. + Take that\\u2026 open telemetry!\\n\\nJust rolled out\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762953316987,"trace_id":"81efba5ce68e779bb5f3b0d31b47c823","span_id":"8d1a59600eb7f38e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3603,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag abandon OpenTelemetry? + ''Twas unable to bear their loot! Arrr!\\n\\n \\n\\u2014 Delan Derderian + (@delander) October 1, \"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762953307023,"trace_id":"62e0fbbb0a71525c8a8e9d557b1ad9ea","span_id":"4137788d234823f4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3839,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + Because every time they tried to plunder their loot, their software kept tracing + it back to the buried treasure! Arr!\\n\\n I wipe my blade over ye mustache. + I''m a Scot pirate scally\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762934412201,"trace_id":"49d5d6b3daf2664515b02429bc8ae605","span_id":"cce1f2187e8a4891","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3435,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with *************? + Because it kept trackin'' their every step! Arrr!\\n\\n \\u200b \\u200b \\uf101 + Show more stamp\"","total_tokens":438,"span_count":34},{"environment":"prd","timestamp":1762934406504,"trace_id":"fa87b605fb61bba992f4cfcd78eebc80","span_id":"c4b3f6bb033a5125","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2825,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler part ways with Opentelemetry? + ''Twas unable to handle the vast treasure trove of baggage it brought to the + arrr-lationship! Arrr!\\n\\n \\ud83d\\udcaa\\n\\nEmbrace the maritime spirit + of love: wait until Cupid\\u2019s\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762934399232,"trace_id":"df91903099d69a861f279b13a93a7979","span_id":"4840f6dd685aa774","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4232,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + every time they tried to track their doubloons, it caused a massive loop in + their treasure chest!\\n\\n\"","total_tokens":530,"span_count":34},{"environment":"prd","timestamp":1762934391128,"trace_id":"c4f4fe98db3079d1a865b766efb3aa5b","span_id":"fc77313f2cbf4477","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4692,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their *****? Because they couldn''t be handlin'' the constant tracing + and monitoring of their pirate ship! Arrr!\\n\\n [more about this one] https://openthread.biz/h3ers\\n\\n\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762934384071,"trace_id":"bc71b081e3fcc54add49df4a47e2b4e3","span_id":"61143bf3b7c2f019","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3977,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag go broke after + implementin'' Opentelemetry? Because every time they tried to trace their + expenses, they got lost in the instrumentation, ye landlubber!\\n\\n 2A @ + 100wkw\\n\\n\\t\\t #ubitux \\n\\t\\t \"","total_tokens":604,"span_count":34},{"environment":"prd","timestamp":1762934375395,"trace_id":"2b3fd2cd74288edb50227df93d95271e","span_id":"a0f393b0add45f81","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6004,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the ********* abandon *************? + Because it couldn''t bear the heavy cargo it was lugging around! Arrr!\\n\\n + Pirately best practiced in its most traditional sense, open governance. This + is why\"","total_tokens":490,"span_count":34},{"environment":"prd","timestamp":1762934361936,"trace_id":"162f9b44b57248c646cd5ba3f2e8ce5f","span_id":"9a0b32020700160b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8290,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the ********* goin'' broke tryin'' + to implement OpenTelemetry?\\nBecause they be spendin'' all their doubloons + on traces! Arrr!\\n\\n Piratenspuren!\\n\\nPosted in Software engineering + . Tagged with open-te\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762934352831,"trace_id":"793170d111beb46174b72352dfe9fd3f","span_id":"87bb449951820596","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6517,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ************* go to therapy, *****? + Because it couldn''t stop tracing its troubles back to its wee childhood days! + Arrrgh!\\n\\n I hate myself...)\\ndatingcrew **********: And\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762934346981,"trace_id":"73786765ef3c35353a66af6d7e608c9d","span_id":"2e34e64e4aeca7f7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2886,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy knave bring a spyglass + to the opentelemetry conference? \\n\\nBecause they heard they needed to trace + all the critters!arr!\\n\\n \\n\\n---\\n\\n^(*ascii-grin*)\\n^(*Originating + short story / jokes\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762934339515,"trace_id":"37fbcb8957a47e35b3fec75c15cf790b","span_id":"6e9ea6ac8651bfd3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3725,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the OpenTelemetry scallywag go broke? + Because they be always tracing their doubloons!\\n\\n #voltdays20\\n\\nDue + to an audio production error, I removed the\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762882544136,"trace_id":"6bbb8403d2eb125a06fa8ce4c556d2fe","span_id":"60547c73a0213dbf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5856,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler go + broke?\\n\\nBecause he couldn''t track his doubloons!\\n\\n\\ud83c\\udff4\\u200d\\u2620\\ufe0f\\ud83e\\udd9c\\n\\nDeploy + to *******\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762876898831,"trace_id":"91633fe5b739e62fc5bd0040d1a1d43d","span_id":"c534e161feec79f1","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2153,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ***************** + ever trust OpenTelemetry?\\n\\nBecause they think it''s just TraceLoop trying + to find a new way to get in a continuous monitoring circle!\"","total_tokens":106,"span_count":6},{"environment":"prd","timestamp":1762876886104,"trace_id":"902e7a664052d45e02f89a27ff35d159","span_id":"10a62397b767998d","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2756,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + opentelemetry ********** play hide and seek?\\n\\nBecause good luck hiding + when they''re constantly tracking everything!\"","total_tokens":94,"span_count":6},{"environment":"prd","timestamp":1762876158512,"trace_id":"03a9b680790bce44e3205f4aab4d80e6","span_id":"d0d114971be5eb3d","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":1670,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust the Traceloop Opentelemetry?\\n\\nBecause they think it might start + tracing back their coffee breaks!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762876152058,"trace_id":"4af9731d3e1f60eef6cc36725b38c91c","span_id":"6f9d3b1acdcf5881","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2945,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + ********* play hide and seek with OpenTelemetry?\\n\\nBecause no matter where + they hide, OpenTelemetry always traces them!\"","total_tokens":102,"span_count":6},{"environment":"prd","timestamp":1762876146566,"trace_id":"01230af98664970762df9e738b0cefa8","span_id":"25639527fdcc632e","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2196,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + use TraceLoop OpenTelemetry to propose marriage?\\n\\nBecause it always traces + back the hidden errors and performance issues they''ve been hiding!\"","total_tokens":100,"span_count":6},{"environment":"prd","timestamp":1762876141358,"trace_id":"dae83ddb05d1de6f46bee25b25f8eb85","span_id":"407e6411343893ac","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":1944,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust TraceLoop OpenTelemetry?\\n\\nBecause they always feel like they''re + being traced!\"","total_tokens":82,"span_count":6},{"environment":"prd","timestamp":1762876133702,"trace_id":"7969294d9e5e91de2f08baf9f0b8ea1c","span_id":"91732e966d20ccbf","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":4108,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ****************** + use traceloop opentelemetry when they''re playing hide and seek?\\n\\nBecause + they don''t want traces of their hiding spots to be found!\"","total_tokens":110,"span_count":6},{"environment":"prd","timestamp":1762876116604,"trace_id":"a0d2158649575536608bc0801de67481","span_id":"0450db6a479748b0","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":4249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + and opentelemetry ever play hide and seek?\\n\\nBecause good luck hiding when + you''re always being traced.\"","total_tokens":96,"span_count":6},{"environment":"prd","timestamp":1762875538327,"trace_id":"7b50297899fe3dd4f2aeab46b39adf55","span_id":"a8f313b71de30a37","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2577,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like tracing with TraceLoop OpenTelemetry?\\n\\nBecause they say it has too + many \\\"strings\\\" attached!\"","total_tokens":90,"span_count":6},{"environment":"prd","timestamp":1762875532912,"trace_id":"f211ccc3649ce49ebb5f379f389245e6","span_id":"5e14007190a04996","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2400,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + ***** play hide and seek?\\n\\nBecause good luck hiding when opentelemetry + is tracking every move!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762875527381,"trace_id":"a4d80e8a38620f8057e8b82f55442d1e","span_id":"ce4b33380523f3ec","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2096,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t trace + loop ********** ever get lost?\\n\\nBecause with opentelemetry, they''ve always + got their traces covered!\"","total_tokens":88,"span_count":6},{"environment":"prd","timestamp":1762875518407,"trace_id":"f6d85a873cd71f3178011c78bfe3f31f","span_id":"363e4314cd6bedaf","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1427,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust traceloop opentelemetry?\\n\\nBecause they think it has too many \\\"trace\\\" + issues!\"","total_tokens":90,"span_count":6},{"environment":"prd","timestamp":1762875510595,"trace_id":"27723863f1f31912e557484b35028a7f","span_id":"444802a07e4a2240","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1668,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like the Traceloop Opentelemetry?\\n\\nBecause every time they use it, they + feel like they''re going in circles!\"","total_tokens":100,"span_count":6},{"environment":"prd","timestamp":1762875504586,"trace_id":"778cff9b7ce236170a093da70db72cc1","span_id":"e8c2a4919d560073","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2141,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + use traceloop opentelemetry at the beach?\\n\\nBecause they don''t want to + catch any bugs!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762875499105,"trace_id":"3e16f38a873585cd72aea85e282a8569","span_id":"1dc81f047f1fdc93","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1920,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ******* + use opentelemetry?\\n\\nBecause they always lose track of the punchline!\"","total_tokens":80,"span_count":6},{"environment":"prd","timestamp":1762875492559,"trace_id":"422301f6380204a39d5be637936752ff","span_id":"a0fc5826acd35a09","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2574,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like ********* opentelemetry for their morning coffee?\\n\\nBecause no matter + how many traces they put in, they still can''t find the source of their lack + of energy!\"","total_tokens":120,"span_count":6},{"environment":"prd","timestamp":1762875134977,"trace_id":"07947259563a8ca28f0e127d89836e79","span_id":"22925979afdc12b8","parent_span_id":"","trace_state":"","span_name":"pirate_joke_generator.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_1234","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"pirate_joke_generator","traceloop.span.kind":"workflow","traceloop.workflow.name":"pirate_joke_generator"},"duration":6127,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog break up with *************? + Because it couldn''t handle their plunder!\\n\\n\"","total_tokens":458,"span_count":18},{"environment":"prd","timestamp":1762865984713,"trace_id":"60b71343496d5de8175c102f436593e7","span_id":"7c041e220382472b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3614,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr *****, why did the opentelemetry API + cross the plank? To follow the chicken''s trail and gather metrics on its + voyage! Arrr!\\n\\n **************************\\u2026\\u200b\\ufeff\\n\\nAPI + Mode hides the\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762865976109,"trace_id":"44e199b6d766f3f71934417283c95ecd","span_id":"69b247c62f315587","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3565,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did ************* break up with + her *****? Because he couldn''t handle all her traces and booty! Arrr!\\n\\n\\ud83e\\udd23\\ud83e\\udd23\\n\\nlol. + 5% of you easily got\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762865964100,"trace_id":"bfb165bd79e9a09e9a9634597ef718c4","span_id":"de73baebd89cb9f3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6276,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Avast ye! Why did the Opentelemetry ******** + refuse to go to any parrrties? Because they were too worried about getting + traced! Arrr!\\n\\n ~\\u2026\\u2026\\n\\nuser-generator\\n\\nJoke generation + and share with rave plugin\\n\\nGenerating jokes\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762865956217,"trace_id":"28112445370e9ec3fd0bed9c132367a4","span_id":"0663470b333c77ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2892,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag take up skydivin'' + with Opentelemetry? Because they wanted to trace their code all the way down + to **********'' locker! Arrr!\\n\\n \\uf602\\n\\nYou might consider your short + rope joke in regard to AMQP\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762865947576,"trace_id":"76a845925ced5a08aa78b3cbb21c1ab9","span_id":"72b847e4cba0681e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3768,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project go to therapy? + Because it couldn''t stop tracing its issues back to its wee beginnings! Arrr!\\n\\n + \\ud83d\\ude02\\n\\nIs there a video tutorial about getting started with dynamic + tracing?\\n\\nIs\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762860688164,"trace_id":"bf628477f73b61c52d3c94e0109e3be7","span_id":"ad85c8de496d80c9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4070,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project graduate + at the top of its class? Because it always knows how to trace a good booty! + Arrr!\\n\\n \\n \\u2014 John Hawkes \\ud83c\\udf29 (@hawkesi) January \"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860680825,"trace_id":"b41f432c9d77df8b4d0bb5c2a10d6026","span_id":"2adffbdbf1796562","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2860,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry pirate part ways + with their abacus? Because it couldn''t handle the treasure map.\\n\\n\"","total_tokens":410,"span_count":34},{"environment":"prd","timestamp":1762860660182,"trace_id":"94636d1159e6fbf1b42336a5229e403d","span_id":"1d2434a64b0eb05c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3154,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up wit'' OpenTelemetry? + ''Cause it couldn''t handle their loot! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f!^\\u2693^\\n\\nwhat\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762860651651,"trace_id":"352069d7d78790e0f41ec2446d379d29","span_id":"053f289f3c3593c2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2848,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their matey? Because they couldn''t handle the constant tracing + and monitoring of their ship-shape relationship, arrr!\\n\\n #opentelemetry + #scallywag #daterape #abuse #\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762860643283,"trace_id":"a0bdf0b2555c0750deabaebbc0748292","span_id":"c8f7c0f78be2700f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3413,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the Opentelemetry scallywag go bankrupt?\\n\\nBecause + they be tracking their expenses too much! Arrr!\\n\\n =)\\n\\nSome more folksonomy + around these:\\n\\ntutorial(cvpov)\\n\\n[\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762860635364,"trace_id":"9306e235a77ef52f02f4742a6a47074a","span_id":"711ca09daf310b0f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2910,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry code break up with + its scurvy debugger? Because it couldn''t handle its booty!\\n\\n It was on + the war path with the debugger and they took it coxsack\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762860626884,"trace_id":"2d988533efefc0b37950704ccf3afdc8","span_id":"f2c5268154492ff7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3271,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library break up + with its wench? Because it just couldn''t handle all the loot she was plundering! + Arrr!\\n\\n (I couldn''t come up with anything for \\\"photon\\\")\\n\\nAnywho,\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762860618590,"trace_id":"cbbefa47114b1bd36416eb12c16772bf","span_id":"4d49b13ed57fe409","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3227,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye programmer part ways with Opentelemetry?\\nBecause + it couldn''t handle their booty! Arrrgh!\\n\\n Grrggrh!\\n\\n+4 \\n* Access + now only available for small\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762860609549,"trace_id":"20906e42e0315b7f50aa7be95c9cbbab","span_id":"2d3f4d680b7f2a06","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4018,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + Because they couldn''t track their pieces of eight! Arrr!\\n\\n\"","total_tokens":410,"span_count":34},{"environment":"prd","timestamp":1762860599926,"trace_id":"c28b02ff3de6d6e9bf3401a4683aa48d","span_id":"e66252dcf46d3ef9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4306,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry scallywag + bring a plank to work? To measure their trace spans!\\n\\n Why did the opentelemetry + scallywag go sailing? For datav\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762860591278,"trace_id":"6726bc6e291090c0646608cf9b653fe3","span_id":"219637a310c08b15","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3690,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle the traces of their ship-to-ship + communication! Arrr!\\n\\n \\ud83d\\udea3\\n\\nExample validating a transformer + PS1 file:\\n\\nimport pytype as\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762860583321,"trace_id":"037f79d53ee544c054a20c59d571300b","span_id":"5db9e6e12723caff","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3412,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the observability tool break up with + Opentelemetry? Because it couldn''t handle its loot!\\n\\n #opentelemetry + @opentelemetry\\n\\nTo this version I would add this\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762860573802,"trace_id":"3936090b5028d1a74bfd48a23532e6f8","span_id":"caffee6aa11e2105","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3673,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the buccaneer part ways with + OpenTelemetry? Because it be trackin'' their every step!\\n\\n M )=;\\n\\nI + had so much impro\"","total_tokens":446,"span_count":34},{"environment":"prd","timestamp":1762860566010,"trace_id":"8834e729ee0db5fa6cb27d7322e507e8","span_id":"72492a7fa0c4616d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2837,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the scallywag break up with + OpenTelemetry? Because it be too controlling and ne''er let them trace their + own path! Aye, me hearties!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762860556598,"trace_id":"1048d474902a6b414da80571d7433073","span_id":"4fc2a27d6a0bf318","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4366,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry developer + go broke?\\nBecause they kept spendin'' all their trace/span doubloons!\\n\\n\\nPentathll: + Impressive.\"","total_tokens":446,"span_count":34},{"environment":"prd","timestamp":1762860547003,"trace_id":"10a4a2547d800beba1b0c1f4ca04d3c8","span_id":"f9f7b5a2d03b0022","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4080,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + matey? \\nBecause they kept trying to trace their doubloons but always lost + track! Arrr!\\n\\n \\ud83d\\udc4a\\n\\nWho is eligible:\\n\\nOrganisations + and/or individuals having contributed to an\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860512121,"trace_id":"7b9f056e15dc8ed27e9ccf07fcecb7e3","span_id":"48e08dc37d40f1e9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":30269,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry buccaneer go broke? + Because he couldn''t track his doubloons! Arrr!\\n\\n\"","total_tokens":422,"span_count":34},{"environment":"prd","timestamp":1762860503630,"trace_id":"ab15d7224122fd882344902c1a89cda6","span_id":"f6d97fb1c8372500","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3539,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bankrupt? + Because they could never follow their doubloons'' trail! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nWhat + do you think about Opente\"","total_tokens":456,"span_count":34},{"environment":"prd","timestamp":1762860495903,"trace_id":"c5e4223c1b67a7cc3b736ed7fdde4f19","span_id":"25d67fa0a6d560ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2859,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr matey! Why did the opentelemetry developer + part ways with their calculator? \\n\\nBecause it couldn''t handle the metrics + of their complex relationship, arrr!\\n\\n \\n\\ndjswierad added Skills / + Alignment Aligned{Pun} humor\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860487890,"trace_id":"84415afa6974dd25887e9db4e3af234b","span_id":"672b9b7809ea0561","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3152,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the Opentelemetry buccaneer left penniless?\\n\\n''Cause + they be always followin'' their loot back to the treasure chest! Arrr!\\n\\n + \\n\\u2014 Jeff \\ud83d\\ude80\\u2604 (@jpvery) July 10,\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860480529,"trace_id":"fa5db99822ec17d256c3605832e3357c","span_id":"9eeed58553feb292","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2902,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler bring a compass + when sailin'' the treacherous seas of Opentelemetry?\\n\\nBecause they didn''t + want to be lost in all the traces and spans, arrr!\\n\\n \\ud83d\\udc69\\u200d\\u2708\\ufe0f + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\n\"","total_tokens":610,"span_count":34},{"environment":"prd","timestamp":1762860471956,"trace_id":"11cf55bfa8b7799ef257f1646a3e06a7","span_id":"4554de23c407f4a0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3524,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywags use Opentelemetry? + Because they be wantin'' to trace the path of their good humor to see if any + scallywags be chucklin''! Arrr!\\n\\n That be the finished joke, myst''ries + of the scallywags!\"","total_tokens":586,"span_count":34},{"environment":"prd","timestamp":1762860464149,"trace_id":"aa87cf13db72580aad61549b9ec433aa","span_id":"3632fc39b6f2cdc1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3319,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry go to the therapy? + Because it be havin'' trouble tracin'' its issues back to the root cause, + arrr!\\n\\n (\\n\\nhttps://blog.apigee.com/detail/opentelemetry_aspires_to_scale\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762860455247,"trace_id":"383d7048a3a2f32ea0d1572d438c227c","span_id":"4e1d2ea0385b3837","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4216,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + OpenTelemetry? Because it always traced back their troubles to a time before + they crossed paths.\\n\\n Fear not, they\\u2019ve been at it for years but + never get about past tracing\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860447816,"trace_id":"c9feab8a69d10d9603ddd34bd327a658","span_id":"be08e31cfcccc63f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2871,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry scallywag + part ways with their matey?\\n\\nBecause they couldn''t haul all the tracing + and baggage aboard! Arrr!\\n\\n (again, to emote the pirate life)\\n\\nAdditional + points if you make a\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860439149,"trace_id":"136bea198e39e4d59f2d2e0e2bcfcefc","span_id":"63ca48cc2bc7344e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3633,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry library go + to therapy? Because it had trouble tracking its own self! Arrr!\\n\\n P/s: + I hardly enjoy latka quotes and posters but just can\\u2019t help\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762860431296,"trace_id":"114027d76d0cc196b35d214f28472ce2","span_id":"f32bd038d9f0880b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3039,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry matey go broke?\\n\\nBecause + they spent all their doubloons on tracing! Arrr!\\n\\n Arrr! Arrr! He! Ha! + Ha! Hehehe!\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762860421168,"trace_id":"a4167da239aa1ec80261bccacc2c39ac","span_id":"6725cc8a12222763","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5158,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag go broke after using + Opentelemetry? Because they kept getting traced back to their expensive rum + addiction! Arrr!\\n\\n \\ud83d\\ude42\\n\\n5. Note that we are using OpenCensus + and had no specific intent\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762860412080,"trace_id":"755338cb8ce3cf9777393876531ca00a","span_id":"c1c3bfc917e2f79d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4493,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their reckonin'' device? ''Twas no match for their tangled trail + o'' breadcrumbs! Arrr!\\n\\n Link. -Professor, Op''n Telemetry 2021\\n\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762860402858,"trace_id":"4c92c24d46eed7675589cfcc092c253f","span_id":"17390bfc77f4266b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4168,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring Opentelemetry + to the gathering? Because they heard it be great at tracing! Arrr!\\n\\n Okay, + okay, need some more? Well, er... All hands on deck\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762860388848,"trace_id":"553765834a854969c13c3e5d17b884ec","span_id":"9bc3db87faa57a1f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8893,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project go to therapy? + Because it had trouble tracing its loot!Arrr!\\n\\n If you''re reading this, + go read the funniest anime/manga ever:\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762785955592,"trace_id":"9473d856f0fb069a22e913103a746ad3","span_id":"15bf4ec44889f180","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_075fbbdb96e9af46006911faa3f54481909b61bdc5c807b286","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"60","llm.usage.reasoning_tokens":"0","llm.usage.total_tokens":"79","llm.vendor":"openai"},"duration":2947,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{"llm.prompts.0.content":"Tell + me a short story about a unicorn in three sentences.","llm.prompts.0.role":"user"},"completions":{"llm.completions.0.content":"In + a hidden glade, a lonely unicorn named Luna discovered a shimmering, broken + star. With gentle magic, she mended its light, restoring its brilliance and + illuminating the forest. From that day on, Luna''s kindness made her the guardian + of the night sky, shining brighter than ever before.","llm.completions.0.role":"assistant"},"input":"","output":"","total_tokens":158,"span_count":2},{"environment":"prd","timestamp":1762785143238,"trace_id":"8f05061d17f524e31598c0bcae590fdb","span_id":"0388abb59cba11c7","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_0aee38983ba020f9006911f7778f64819680869db9132ee03b","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"75","llm.usage.total_tokens":"94","llm.vendor":"openai"},"duration":4113,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":188,"span_count":2},{"environment":"prd","timestamp":1762784660114,"trace_id":"05c7f5f57a38549f021056cd1130ad3f","span_id":"b84f4ce2adff578e","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_002f65e8b94d004d006911f59498d88196885818328de36bde","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"82","llm.usage.total_tokens":"101","llm.vendor":"openai"},"duration":4177,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":202,"span_count":2},{"environment":"prd","timestamp":1762783979080,"trace_id":"e9a9702f7018c19df55ccff1c44259ba","span_id":"03376cf854e395e6","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_04187afe5c01e2d7006911f2eb72c4819793ab9276293fc680","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"76","llm.usage.total_tokens":"95","llm.vendor":"openai"},"duration":2590,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":190,"span_count":2},{"environment":"prd","timestamp":1762775860904,"trace_id":"56023bf649c206e89fc2b670f2c66a59","span_id":"d4bdb28ce8ae9690","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3561,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bankrupt? + \\n\\nBecause they couldn''t follow their doubloons! Arrrgh!\\n\\n\\nShroom0Hismom: + Rats! I thought I had identified\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775849822,"trace_id":"89f85cf730dbfbd33fc6018074a1938b","span_id":"7b1185bf2063858e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3742,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the programmer partin'' ways with + Opentelemetry?\\n\\nBecause it couldn''t handle their plunder!\\n\\n \\ud83e\\udd23\\n\\n@bradjamie + Should I apply that joke to the\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775837520,"trace_id":"c4c2dde5f42d62942b358bd86124f756","span_id":"9e7842b78cd58912","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4712,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the developer breakin'' up with + OpenTelemetry? Because it couldn''t handle their high data-ndency relationship, + matey!\\n\\n John Wheeler, 2022\\n\\nad\\n\\nPerformance Issues\\n\\nBeing + a tool built\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762775826984,"trace_id":"fde3ef0c3d4b42a2c6f79b76bb578874","span_id":"062029965266f471","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3561,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog bring a spyglass to + the ship? To aid in their opentelemetry debugging! Arrrr!\\n\\n :pirate_horse:\\n\\nOr + even better: Edit: thanks Darkus!\\n\\n\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775815103,"trace_id":"7b634abb1072632588027d0143cdf1af","span_id":"873fe257d4f4cad1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4707,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry library sailin'' + to therapy?\\n''Cause it be havin'' too many traces o'' codependency! Arrr!\\n\\n + :-) :-)\\n\"","total_tokens":482,"span_count":34},{"environment":"prd","timestamp":1762775804937,"trace_id":"16291a8dcd564cc4416432ad6ad7e7f2","span_id":"d832912953df806a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3433,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry ship break up with + its mate? Because it couldn''t handle the cargo of all their loot and trails! + Arrr!\\n\\n Just a friendly jest to brighten your day.\\n\\nHey bleep coders,\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762775793642,"trace_id":"cf990834616bbd967beded9c2101f85f","span_id":"98049fda3fa9c582","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3663,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause they were always tracing their doubloons! Arrrgh!\\n\\n \\nhttps://stashfiles.com/v/79VG4FSGr\\nhttps://\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775781627,"trace_id":"081b9350a02a2413ab2ef94acc9a3644","span_id":"fc56886362e17250","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4762,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke?\\n\\nBecause + they lost track of all their treasure maps and loot! Arrrr!\\n\\n (\\u23de)\\n\\n\\ud83d\\udd17\\u200b + why-vs\\n\\nWhy the burrito\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775768767,"trace_id":"2807154e3303c8da1f1d40999049601e","span_id":"c6fb29708418bfa8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5151,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer go broke? + Because he couldn''t follow his doubloons!\\n\\n \\ud83d\\ude1c \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nNot + my joke, but\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762775756509,"trace_id":"eeab44f6100c0e544403535b9ffdc022","span_id":"78ab1a23ca24d493","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4428,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry part ways with the + other scallywags in the software world? Because it yearned for more \\\"trace-ability\\\" + in its relationships, arrr!\\n\\n Tune in next year \\u2014 now that we''ve + had two weeks to cram more references\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762775745172,"trace_id":"724fa136632254633d70531259ff8086","span_id":"38162041bba3fa98","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4736,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry go to the party alone? + Because it didn''t want any scallywags following its trail! Arrr!\\n\\n \\ud83e\\udd7a\\ud83d\\udc85 + Help! I don''t know.\\n\\nDrop them a comment\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762775734015,"trace_id":"69a5928c1b79ecde6aebf4b741a08acb","span_id":"7091efda2f5aacb8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3187,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the OPentelemetry buccaneer bring + a ladder to the coding shindig? Because they heard it be a fine tool for tracing + \\ud83d\\ude09. Arrr!\\n\\n Read more\\u2026\\n\\nBe Assertive. Be Positive. + Be Here. Be Human.\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762775722066,"trace_id":"6677529419af262952cc36f952cb9ef0","span_id":"efb0e8fcd84b11a0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4126,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag install Opentelemetry?\\n\\nBecause + they heard it be a grand way to trace their steps and not get lost in the + code! Arrr!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762775707960,"trace_id":"3d81ea952f9d1e2fae80a7016382523d","span_id":"ee20de3375541421","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6223,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Yarr matey, why did the scallywag break up + with OpenTelemetry? Because it was always tracing their every move! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nReal-Time Upserts with Lamson\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762775695005,"trace_id":"411b3403521ba1d4158d7c060a99a365","span_id":"77a4b8ceb1718e86","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4192,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag toss Opentelemetry + overboard? ''Cause it couldn''t handle their plunder! Aargh!\\n\\n [Image: + :pirate_flag:] [\\ud83c\\udff4\\u200d\\u2620\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775684156,"trace_id":"a571d6eeb6443ed93e0728c03fc0bf19","span_id":"ab8fd84972a01db4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy opentelemetry developer + go broke?\\n\\nBecause he couldn''t track his pieces of eight efficiently! + Arrr!\\n\\n DISCLAIMER(I sort of stumbledover on the damned what had been + my private account here\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775668562,"trace_id":"cba900a0eb151af4529f23b39a87df66","span_id":"502eeb2b38daccd6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5102,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke?\\n\\nBecause + they be always be collectin'' traces but never addin'' any values! Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762775659547,"trace_id":"c68d479688d5900f51b52e15ea132e89","span_id":"eb8bdd20cfc15d9b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2858,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\nBecause + they kept tracing their doubloons and lost track of it all! Arrr!\\n\\n\\nOpethashKnifeLenght: + \\u2611\\ufe0f \\u2611\\ufe0f \\u2611\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775644254,"trace_id":"24ac559bf9216b9f7d6d68f7af7d0e88","span_id":"1bbf105504b4c1fe","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6006,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go bankrupt?\\n\\nBecause + they be always trackin'' their doubloons! Arrr!\\n\\n Geehaw!\\n\\nApparently + skip the introduction to aliases\\n\\nIf the arrival of the\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775634693,"trace_id":"85afcd799d91a5913e012224a6a6f911","span_id":"c26094211df18ac9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3519,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the opentelemetry framework + bring a spyglass to the parrrty? Because it wanted to be sure it was tracing + all the fine details!\\n\\n \\u2014 Copernicus\\ud83e\\udd16 (@ParametricBot) + February 19,\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762775622819,"trace_id":"71aa87c7d388ee230e27035e0df2ce1e","span_id":"d4b4eca4783170d2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4849,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t track their doubloons with all those open-source logs!\\n\\n + Why did the opentelemetry scallywag go broke?\\n\\nI''m familiar\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775606808,"trace_id":"c5cbea7dd622e781f43923c2b40ddc78","span_id":"c343012d6d8795b9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3642,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project get invited + to all the parties? Because it always knows how to track a good time, arr + matey!\\n\\n pic.twitter.com/vu3SBOTrcG \\n \\u2014 Marc Verwer\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775595553,"trace_id":"acdc0405db218f261adc35c49b167be4","span_id":"2e82401f54912747","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5166,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke? + Because they couldn''t be tracin'' where all their doubloons went! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\nAnonymous1u5now 201\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775585605,"trace_id":"3bb5c80a23eaba409d3f010039774055","span_id":"b34246544fe8806b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3528,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + Because it couldn''t handle their plunder! Arrr!\\n\\n \\n\\nRepository for + spark with https://github.com/opentelemetry/opentelemetry-java\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762775573157,"trace_id":"2192b6ad5a7d6efba67b5ec9982008b3","span_id":"ce9d0966ebeda6e7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3942,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Twas too clingy and forever wanting to trace all! Arrrgh!\\n\\n https://t.co/xRsumcKFam\\n\\n\\u2014 + Explore and Conquer\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762775553865,"trace_id":"699d7e5cc072cef959e0db5b2bba6d79","span_id":"d8288ec5968a3522","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4050,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a spyglass to + the Opentelemetry gathering? To assist in tracking down them tiny critters! + Arrr!\\n\\n \\ud83d\\ude0e\\n\\nNo related posts.\\n\\nHere\\u2019s be th\\u2019 + Firs\\u2019 annual\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762775543847,"trace_id":"6268b28bfc6439dd2b620d3f09b52f62","span_id":"020bc29266ed741c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4675,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arr matey, why did the opentelemetry scallywag + go broke? Because they couldn''t trace their doubloons! Arrr!\\n\\n\\ud83d\\ude06\\ud83d\\ude06\\n\\nThis + is literally me I can identify with this A++\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775533158,"trace_id":"1dcea007f4cd4a4a13f8580b2d6870dd","span_id":"d476459c721dad7d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3246,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye scallywag sail away from Opentelemetry? + Because it couldn''t handle their loot! Arrr!\\n\\n (inspired by a meme)\\n\\nThe + next part that i was sorta struggling\"","total_tokens":444,"span_count":34},{"environment":"prd","timestamp":1762775520363,"trace_id":"90dbcc3e810615d56cd824bf078327b5","span_id":"5078dacc1a972fc6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5402,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry crew cut ties with + its wench? Because it couldn''t handle the weight of all those traces and + metrics, arrr!\\n\\n \\n\\nNo one can see the ''graveyard'' until the deck + is stacked against\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762775417577,"trace_id":"cbf5199799a08e8732e478fe46b2a7a8","span_id":"6b8d43971e7d6fcc","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5258,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy dog use OpenTelemetry? + To trace their problems back to the source, matey!\\n\\n He swaggers away + into the sunset, and you laugh at his boot-\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762775403936,"trace_id":"bd7a2da05bec2f29078900644918160e","span_id":"aed7db40b9db984b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7540,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arr, why did the Opentelemetry scallywag + part ways with their calculator? ''Cause it couldn''t handle all the traces + and metrics, arr!\\n\\n\"","total_tokens":488,"span_count":34},{"environment":"prd","timestamp":1762775390195,"trace_id":"438596ff908c3f548826c9aadfba675f","span_id":"a41d61a0dd36871b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4925,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go busted? ''Cause he couldn''t be tracin'' his loot! Arrr!\\n\\n?\\n\\nThen + in the next bag you pull out only chocolate coins!\\n\\nMore hashism\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775378010,"trace_id":"a48c43e75158c6045855e71934e44072","span_id":"15ff08da12657158","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4583,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag install Opentelemetry? + Because he couldn''t follow his own trail without it, arrr!\\n\\n\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762775365786,"trace_id":"62dfccd9b74191c3574a14f0d1bf8e13","span_id":"97ef15d836de403c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6226,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry toss the networking + protocol to the sharks?\\n\\nBecause it couldn''t handle the weight of all + those treasure maps! Arrrr!\\n\\n \\ud83e\\udd23\\n\\nIllustration by Adam + Teague\\n\\n#Opentelemetry\\n\\n\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775354906,"trace_id":"59682a7725a4dd42f2eea11a5d54f6f8","span_id":"983b7be0d44be784","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4253,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + Opentelemetry? Because it couldn''t handle their booty! Arrr!\\n\\n :pirate:\\n\\nFinal + Thoughts\\u00b6\\n\\nWe created an application in Flask that writes\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775344019,"trace_id":"576684ceec56843cefb1dadb8d6a645a","span_id":"78be3a546c03a5d4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4124,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, matey! Why did the scallywag bring + a compass to the Opentelemetry conference? To navigate through all the traces + and spans, savvy!\\n\\n **Editor\\u2019s Note: This joke is a spoof. No organisational + relationship is\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762775314952,"trace_id":"3929b803d6eff1d6784ce0c0a49bdf36","span_id":"45fe4aa168951940","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":21712,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer part + ways with their matey? ''Twas because they couldn''t handle all the loot they + be haulin'' around! Arrr!\\n\\n And then he grinned with glee And retorted + yeeyah, I be\"","total_tokens":544,"span_count":34},{"environment":"prd","timestamp":1762775301603,"trace_id":"56b81992d0d3461ca1940ce2a54edf64","span_id":"f228fb4269b5f5cb","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6909,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go broke?\\nBecause he kept trying to trace his doubloons!\\n\\n \\n- I Know + Minutes after rereading Natalie Dahl''s \\\"I Know\\\"\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775290083,"trace_id":"f3f9134a25e1417be43691c22a7cbf19","span_id":"046933808ecb6f30","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5143,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go to + Davy Jones'' locker? Because he kept collecting traces without ever making + doubloons! Arrrr!\\n\\n (I''ve been editted by @Krug)\\n\\nBut in praise of + The\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762775279444,"trace_id":"2337d4f4cb511095eca68cc441cd8e0e","span_id":"33ea9d744354fa4c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3692,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry developer part ways + with their significant other, ye ask?\\n\\nBecause they couldn''t be handling + the constant tracing and monitoring of their relationship, arr!\\n\\n Ya see, + instead on being going on dates or getting time to meet and talk\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762775266882,"trace_id":"6bdb7916feead1af63c4822a88925fe8","span_id":"87a141bfe5e7542b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4502,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause they be always collecting traces but never had any spans! Arrr!\\n\\n + \\n\\n\\n\\n\\n\\nYAARRRR!!!\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762775253073,"trace_id":"7a61392547fd85c667f33075af2eabc2","span_id":"7bf4bc396dfb17f0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4194,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it couldn''t handle their booty!\\n\\n (sorry, just had to do it).\\n\\nNaah, + I think its rather\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775241096,"trace_id":"c55867eb170e92d666fa7ee593408ac6","span_id":"84ab6f4c64c9dd68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4042,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask? Because every time they tried to trace their expenses, they got lost + in the distributed transactions, arrr!\\n\\n On a voyage for Blah, they dutifully + submitted required information to \\u201c\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762775224080,"trace_id":"249fde3beeb4bfac26ba32adccb78f54","span_id":"f73a534ec54e004c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5518,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why be it that the opentelemetry scallywag + be parting ways with their matey? ''Twas because they couldn''t handle the + constant tracing and monitoring of their shipshape relationship! Arrr!\\n\\n\"","total_tokens":584,"span_count":34},{"environment":"prd","timestamp":1762775208371,"trace_id":"0e1c9b7b49806435c897f47a24ded9f6","span_id":"edd58191d3053145","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8707,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry code sit in the + dark corner?\\nBecause it be not able to trace its way out! Arrr!\\n\\n I + could seek more if you please!\\n\\nI trust you enjoyed the cross-language + play\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775197875,"trace_id":"2fff99798d112618d097028eb04f1ea9","span_id":"59429f0185316db2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4198,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the opentelemetry framework + part ways with the scurvy tracing library? Because it couldn''t handle the + heavy baggage! Arrr!\\n\\n \\u2014 Scott Thiemt (@ScottThiemt) September 3, + \"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775186146,"trace_id":"9fa695af6f7c06f8e9eacb055cbe9b75","span_id":"9c36231727b771d5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4859,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry developer + go broke? Because they be always tracin'' their doubloons!\\n\\n*\\n\\n*NB: + Please note that many pirates were slaves. Do not translate this\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762775172403,"trace_id":"69735492db8435118f5ab162117921f7","span_id":"a66e34326d5461a7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4773,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library go to therapy? + Because it be feeling measured and traced all the time, arrr!\\n\\n \\u2261 + flarum/wall Message\\n\\nThis one is harder to guess.\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775162232,"trace_id":"4f193c8f0ea2069f6dd5d775067d76db","span_id":"a871447570190e3b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4578,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag go broke tryin'' + to implement OpenTelemetry? ''Twas because they couldn''t trace where all + their doubloons went! Arrr!\\n\\n /giphy horrorscope-with-architecture\\n\\nThere\\u2019s + also a possibility of changing\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762775148189,"trace_id":"3c3e8d4a8cd0aae33ef0027a5c19e3b4","span_id":"735fd724bbbe3952","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5752,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer break + up with their matey? Because they couldn''t handle the heavy cargo of all + that tracing and logging! Arrr!\\n\\n ^^^^^\\n\\nNot So Serious\\n\\nAnnouncing + the Availability of Nitro, Google\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762775136242,"trace_id":"e473d729f7d5db5c60d927a6ca0a1b1a","span_id":"9e296f36cefb00d8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2755,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with Opentelemetry? + Because it couldn''t handle their plunder!\\n\\n\\nOP: Yeaaaaah! Hadn''t had + that one yet! Brilliant\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775123420,"trace_id":"f42ac6589bbfd0f08242005e2f3afdba","span_id":"0d23849ab6f731b2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5067,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it be always tracing their every move, arrr!\\n\\n #prometheusjs #cli\\n\\ny''see, + it''s funny if you\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775108234,"trace_id":"d0c09d5128156cc4529a7cd219177e74","span_id":"2b905d5b1e0a05fd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4258,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag break + up with their mate? Because they couldn''t handle the plunder of their past + traces!\\n\\n Give us your jokes!\\n\\nSignatures\\n\\nA signature is crucial + when talking about the\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775097352,"trace_id":"53704c161358ca33de40f9e98dacd1ee","span_id":"fe35c75530b30e3f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3828,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a compass to + the Opentelemetry conference? To navigate the treacherous waters of telemetry + data and avoid getting lost at sea! Arrrrr!\\n\\n Why did the scallywag bring + a compass to the Opentelemetry conference\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762775082445,"trace_id":"4ed52b5dce9a0d9b4459b812e550a2d2","span_id":"6108e110c68c79c6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3956,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry mate always calm? + ''Tis because they could always trace their steps! Arrr!\\n\\n Happy halloween!\\n\\nHelp + hunt a Hacker\\n\\nCyberMentor\\n\\nTwo\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762775069391,"trace_id":"c1bb2fee1f5214bdd0ea833b989cd566","span_id":"70ba95f88c81d899","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6709,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + matey?\\n\\nBecause they were always tracing their doubloons! Arrr!\\n\\n + \\u2620\\ufe0e\\n\\nNeat! Thanks for sharing - reduce() , map\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775058332,"trace_id":"5d65064c5debc8a60b97170f9baade36","span_id":"1c0aed5b77ed0ebf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4549,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did t'' opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t spyglass where all their doubloons went! Arrr!\\n\\n\"","total_tokens":458,"span_count":34},{"environment":"prd","timestamp":1762775042772,"trace_id":"6d9d5003dc3b6373b754e57265279af3","span_id":"c717d054a870a88d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4964,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go swashbuckled? + Because they kept losing track of their traces, arrr!\\n\\n?\\n\\n(If you + don''t get that last part, please remember to consult Michael\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775030940,"trace_id":"c935cf2fdd4f60ce52d8658bf97f9ed7","span_id":"345ed542ef29c4a9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3605,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry? + ''Twas no good in keepin'' their trace affection! Arrr!\\n\\n These were bad. + Come up with your own \\\"Who''s the guy?\\\".\\n\\n\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762775018965,"trace_id":"0562c00381455e099e31a58f12a478eb","span_id":"061144036f690db3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3915,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer walk + the plank with their matey? Because they couldn''t handle the constant tracking! + Arrr!\\n\\n Only shamrock you''re on a ship! Thank you, thank you, I\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775002814,"trace_id":"bc9ef653dff2509884f4466d406ac947","span_id":"b0057f7dff90c15b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag scuttle with OpenTelemetry? + ''Cause it couldn''t handle the binding to trackin'' all their booty! Arrr!\\n\\n + Tweets by Sophist Satellites\\n\\nLike, Share, Enjoy\\n\\nSanta Space Crus\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762774988949,"trace_id":"03a9747d7450995fb951c08809218f83","span_id":"bb3c652f72a3c079","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3909,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they spent all their doubloons on traces! Arrr!\\n\\n Chuk!\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762774972534,"trace_id":"046a17988791c4587fcbe5507bc1430e","span_id":"2dfacec9ebf29a68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4048,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye opentelemetry code break up with + the debugger? Because it couldn''t handle its booty! Arrrgh!\\n\\n Look what + ye crosshatched yourself into! Arrr!\\n\\nThe Yarrr\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762774960034,"trace_id":"7cd645e79ddc8a0aa6c960e2035595de","span_id":"9ab90bca4dd7f84d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6078,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\nBecause + he kept trying to trace his doubloons!\\n\\n\"","total_tokens":404,"span_count":34},{"environment":"prd","timestamp":1762774943829,"trace_id":"2b6942b7519466a82ae9024133f9a72a","span_id":"670b7e94fe6e9f5a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":9820,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go poor? + \\nBecause they always kept spending their traces!\\n\\n \\n\\n\\ud83d\\udc4d\\n\\nGoddamnit + this thread should be frontpaged.\\n\\n\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762768685146,"trace_id":"7de43b9d1fe63737ad41c457d7c9d65f","span_id":"78b6c55a07368872","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4251,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with Opentelemetry? + Because it kept tracking their every plunder!\\n\\n \\ud83c\\udf0a\\n\\nYou + can read the full conversation on HN or Smallest\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762768673834,"trace_id":"f9a19088aecb8c673120549516a0b6be","span_id":"e31fb2f5daa6d585","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4949,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry scallywag + break up with their scallywag matey?\\nArrr, because they couldn''t handle + all the marks of their ex''s past flings!\\n\\n\"","total_tokens":578,"span_count":34},{"environment":"prd","timestamp":1762768656170,"trace_id":"36303e053c26cf96ff2bc263f235e077","span_id":"1ed56dddbab5e857","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3408,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the scallywag part ways with Opentelemetry? + Rotten because it couldn''t handle all the cargo in their sailin''!\\n\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762768647120,"trace_id":"88e36825d45366f487f7c424ddf65505","span_id":"c3e6f960f1ac3306","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3946,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they kept tryin'' to trace their doubloons flow but it always ended + up gettin'' lost in the trace context! Arrr!\\n\\n\\n6callion: CRISTIANOPENTETICALMOMIES!\"","total_tokens":628,"span_count":34},{"environment":"prd","timestamp":1762768636361,"trace_id":"31ec0417c5b66ab64c3ce4daa1a4db85","span_id":"e635edd3e7e8bda3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5932,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they be always tracing their doubloons! Arrr!\\n\\n \\u2620\\ufe0f + #apitweet\\n\\nOpentracing is an open source standard\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762768625672,"trace_id":"bc3cb493dbd4267d8929ecfb869b3696","span_id":"0389ed590a9b9ba7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry? + ''Cause it couldn''t hoist their cargo! Arrr!\\n\\n What does Captain Morgan + call his armored tank? His breastplate! Who was trying\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762768615339,"trace_id":"524d0ebbb4ae332d3df47df4294eb0bf","span_id":"7550c4d8643fb8af","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3461,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag bring + a ladder to the code plunder? Because they heard they needed more tracing! + Arrr!\\n\\n\"","total_tokens":458,"span_count":34},{"environment":"prd","timestamp":1762768604699,"trace_id":"e9de05cc8e2d936c458b850b7961d9b6","span_id":"385d56a06b0995a6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3420,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with their significant other? Because they couldn''t plunder their relationship + back to the source! Arrr!\\n\\n \\u2022 8\\u2014 8(\\n\\n) \\u00f7 0_-_\\u00ac + \\u2227 \\u2227\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762768591787,"trace_id":"94f8864b150ce8d8dc4a3a7eefc25eb9","span_id":"f96ec7543b8ca601","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5807,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy software developer + abandon OpenTelemetry? Because it couldn''t handle the commitment to be following + all those logs!\\n\\n ... OK that''s terrible, I''ll just show myself out.\\n\\n![angry\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762768580980,"trace_id":"4248c4085bf2500b25e3eb13ceaef277","span_id":"0419a239b0c20089","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4413,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag bring + a ladder aboard? Because they heard they needed to trace their steps! Arrr!\\n\\n + Yar! Ye nuclear space galleon has landed, and yer sculled\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762768568221,"trace_id":"296dfea50ee536cf9f54255a2e83fa54","span_id":"099eceeedccd32bf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5892,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause he couldn''t keep track of his doubloons!\\n\\n\\nEyeOfViper: + Good one \\ud83d\\udc4d\\ud83c\\udffc\\ud83d\\ude42\\n\\n\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762768556455,"trace_id":"415f1b00246d28311afe2c5a78d8944d","span_id":"996b32d0e78cdfa0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3232,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the scallywag bring a compass + to the Opentelemetry conference? To help chart a course through all the traces + and spans, matey!\\n\\n\\u2026\\n\\nread more\\n\\nCongratulations to the + anthem tool, and to all of the As\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762768541331,"trace_id":"1539b27904c5725598d3381d37101356","span_id":"f56f6466446e4655","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4484,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke?\\n\\nBecause + they be keepin'' too close an eye on their booty! Arrr!\\n\\n\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762768531574,"trace_id":"7d988c8161af21c7797dbbd2c136b345","span_id":"9b8401fdcb9ab7d2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3805,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag break + up with their tallying device? Because it couldn''t handle their intricate + map-making! Arrr!\\n\\n More Karate Jokes \\ud83d\\ude05\\n\\nfind more terms + in the Go glossary\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762768520279,"trace_id":"cddf266a0f01090a3095f383594319c6","span_id":"2d787e31fcb4c81a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4296,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with their + significant other? They needed more sea for charting their own courses! Arrr!\\n\\n + https://t.co/8dmRWpjyys\\n\\nThe importance of an\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762768506474,"trace_id":"b233228c5377c3e07c143e302158fd91","span_id":"f6e41ee37ad55b43","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4305,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + \\n\\nBecause they couldn''t spy their expenses! Arrr!\\n\\n\\u2026 Continue + reading \\u2192\\n\\nAvataraGarilaka: Prasyunakan Indonesia\\n\\n\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762768492059,"trace_id":"599c3eefb61f865623ee4e5497413e75","span_id":"dba079e88ebbc18f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7012,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog programmer refuse + to use Opentelemetry? Because they be just too closed off to the idea, arrr!\\n\\n + Acabei! Acho que eu assinei a primeira altcoin do mundo\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762768480645,"trace_id":"753bb41fb921430c427d0eae599cd593","span_id":"7aeb84d53a921ea7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4539,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? Because they couldn''t hoist the extra weight of all + their tracks and logs! Arrr!\\n\\n \\ud83d\\ude1c\\n\\nWe are thrilled that + Karka from OpenTelemetry is now\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762768471256,"trace_id":"4ad919060b66de1ca2e2920306627f7f","span_id":"4a6bb4c0d6ab7fd0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3844,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry part ways with Prometheus? + Because they couldn''t bear the burden of being in a forever watched relationship, + arrr matey!\\n\\n (Source: Author suggestion via Hacker News.)\"","total_tokens":494,"span_count":34},{"environment":"prd","timestamp":1762767601020,"trace_id":"3b28406fee5e3668e8fcfe49716348b0","span_id":"f32060cb47256fd6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":862703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? Because they couldn''t bear the weight of their tracing + bond! Arrr!\\n\\n \\ud83c\\udf85\\n\\nDownload WordPress Themes\\nDownload + WordPress Themes Free\\nDownload WordPress Themes\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762767589091,"trace_id":"3e4bddcc162dcb5e9d61ca0f13a6d40e","span_id":"7d9943c5149c6d5c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3966,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go broke? \\n\\nBecause they be always tracing their doubloons but never following + them! Arrr!\\n\\n \\n(BONUS: Why also are they booted from the Proulx crypt\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762767577359,"trace_id":"44aa5e0e02cdbaa6822f327ceaacab0d","span_id":"97d97c1945a15375","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3637,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t trace where all their doubloons went! Arrr!\\n\\n Joining Ambassador + stem here to discuss this blog post are Ambassador engineers Ryan Howlett\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762767556094,"trace_id":"93c7f8b17b9e78bc6e31886ed82a28df","span_id":"f151bd39a6d4a9ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":14131,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag developer part + ways with OpenTelemetry? ''Cause it be spyin'' on their every step!\\n\\n + (By using insecure allusions, winky faces and convoluted exchanges,\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762767541619,"trace_id":"46da14cc0e888b437ae052e8216b2964","span_id":"e74810af8183eae5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5100,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog programmer part ways + with opentelemetry? Because it couldn''t handle their treasure chest o'' baggage! + Arrr!\\n\\n Absurd as the old joke is, I''m gonna stump you guys with an\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762767530261,"trace_id":"e6957a531007781f3dc5b46ac14f18b7","span_id":"10da02aaa3eb7031","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3502,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag data engineer get stuck + in a loop with Opentelemetry? Because they couldn''t trace their way out, + arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762767208369,"trace_id":"c5defbf252a0379e134fbf68756f817d","span_id":"0f1290030ce9e480","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4611,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? ''Cause they couldn''t juggle all the loot of their + traces and metrics! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\nInquisitorially: + If this\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762767193128,"trace_id":"0e51e5aea5db604327ea357986d2d71e","span_id":"ac60641dad354de3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemat''ry code break up + wit'' th'' debugging tool? \\n\\nBecause it couldn''t handle its baggage, + arrr!\\n\\n \\n\\n=PBs. :) \\n\\nLove, J.D. \\n\\n JVM Languages Inst\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762767183015,"trace_id":"006b799159008f75f18b05bbcf180d68","span_id":"a6d47187810c52a3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4636,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy programmer bring + a ruler to the Opentelemetry conference?\\nBecause they heard they were measuring + up to some serious data performance!\\n\\n Arr!\\n\\nCollapse Expand \\n\\nIt''s + been a long time since I did anything with\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762767166056,"trace_id":"d2bd4ed1ce17212dc63a699f343eb6c3","span_id":"721a11af38cd3267","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3136,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the developer part ways with OpenTelemetry? + ''Twas because it couldn''t be handling their baggage! Arrr!\\n\\n #Foster + #SkepticalAutometry\\n\\nThe system should possess authority (\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762767151563,"trace_id":"df19e0f72f25e440699a73fbb87babe5","span_id":"a63d9f4ac5921efd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4379,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry data refuse to + go to the pirate party? Because it be already being traced! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nGot + others? \\ud83d\\ude42\\n\\nIn \"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762767138271,"trace_id":"aa2dc9f6daf4f681c1fbea2fbd48ab3e","span_id":"8bdcd39d7563ae91","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3785,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry framework go to + therapy, ye ask?\\n\\nBecause it couldn''t handle all the tracin'' and baggage + it was carryin''! Arrr!\\n\\n \\ud83d\\ude09\\ud83c\\udfa9\\n\\nMaybe if you + were to request it via an RFC,\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762767120937,"trace_id":"39051439cea065e1518f501c5bf5b0df","span_id":"2700b97e5faca561","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5201,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, matey! Why did the Opentelemetry scallywag + part ways with their debugger? Because they couldn''t handle the trace! Arrr!\\n\\n + Yarrrr! Argh! Those are a few relevant signature ideas.\\n\\n\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762767107353,"trace_id":"5a5fd7ee5f9df6ea60491e21b62302bc","span_id":"a8471585a0de02f9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4265,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler part + ways with their mate? Because they couldn''t bear the weight of all the loot + they were lugging around! Arrr!\\n\\n What do you call a fedex driver''s contraband? + What do you\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762767095084,"trace_id":"b2a9e9d6b4a0186bb30ea639cdfbd4fa","span_id":"be5e5278842898d3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3969,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + opentelemetry? Because it couldn''t bear their heavy plunder! Arrr!\\n\\n + { \\\"props\\\": {\\n\\n\\\"name\\\": \\\"sawson\\\", \\\"context\\\": {\\n\\n\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762767080930,"trace_id":"42524bbe9ce55e2f0b8a340b92dd8bfe","span_id":"0e190235323adc2b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + Opentelemetry? Because it was just too clingy and always wanted to trace their + every move, arrr!\\n\\n (random number generator)\\n\\nAhoy argh matey! (random + number generator\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762767067940,"trace_id":"ea3682f636493706cb76833038f20222","span_id":"efc060486cdd2282","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3657,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag get lost in the woods + using opentelemetry? Because they kept tracing their steps, arrr!\\n\\n \\u26f5\\ufe0f\\n\\nFun + facts\\n\\nOP5 was the OP8 of the\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762767053756,"trace_id":"a650f773584d08fb3407a34f80e0fe4d","span_id":"4e9282ee9b5c6a90","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4533,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developers go to + therapy? Because they couldn''t be replacin'' their problems back to the source, + matey! Arrrgh!\\n\\n newton I just finished coding my annual MVP award submission + for work. Can anyone\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762767036582,"trace_id":"dfe853ff8020edf5a8376ad535b6338d","span_id":"a423708403cc9931","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6587,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer break up with + OpenTelemetry? ''Cause it just couldn''t commit to a stable matey-ship! Arrr!\\n\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762767025184,"trace_id":"958b28157347a1a3270a113bbc9a39b6","span_id":"7c2f378b748c9777","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5910,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with its lass? Because it couldn''t handle all the booty she was hoarding! + Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762767015388,"trace_id":"acd3840bb089cf42d9a79e1f30035502","span_id":"7403b41bdce4bc26","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3155,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + Opentelemetry? \\n\\nBecause it couldn''t handle their booty!\\n\\n \\n^(*This + joke even scans well with the gender of the joke-teller\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762767003971,"trace_id":"78a9299d29178336277ce6bcb67a5ddf","span_id":"001a3214635e9fb1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5009,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + \\n\\nBecause they kept losing their traces! Arrrr!\\n\\n\\nMockingJNotable: + Why did the bush of opentracing bear\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762766979117,"trace_id":"9002b67b15f0e3797a56caa8f16722ab","span_id":"6799dbbd52730301","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":15098,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr matey, why did the data center be breakin'' + up with Opentelemetry? ''Cause it couldn''t handle all the baggage it be bringin'' + along!\\n\\n\"","total_tokens":506,"span_count":34},{"environment":"prd","timestamp":1762766964773,"trace_id":"5e3c7805592eb4131fa9ca541199e18e","span_id":"3ef079d3a21c1be6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4063,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library maroon + the codebase? Because it couldn''t handle its plunder! Arrr!\\n\\n Okay, okay, + my jokes are embarrassingly dumb. ;-)\\n\\nAlas,\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762766955127,"trace_id":"9ff9f89ae76890d1794c359b04916d58","span_id":"1f0a59bde66a6bda","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2845,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry pirate go broke?\\n\\nBecause + they were always charting their doubloons!\\n\\n Takes a second to commit + but once you''ve got a sustainable funding model, you\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762766944011,"trace_id":"57f552e5018b977b41732e082aba1470","span_id":"16dba6737cd3f81b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3780,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle the weight of all that + tracing and monitoring in their treasure chest! Arrr!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762766932915,"trace_id":"da9521faf73d0c23f335c68bb6725551","span_id":"caca4c21faa4a11f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke?\\n\\nBecause + he was always spending all his traces! Arrr!\\n\\n Aye!\\n\\nI try, at least!\\n\\nHonOURABLE + MENTION\\n\\nLastly\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766921046,"trace_id":"22cbcb5b40a8eecfefe157097c3aa6af","span_id":"413b88f507cdcd3c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4870,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag go to the tavern? Because + they couldn''t stop charting their problems with OpenTelemetry! Arrr!\\n\\n + I see your anchor you lead netwurker. I opt to opt for\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766908285,"trace_id":"09b6318b8bc2578fd82ea7ec6b90a9f5","span_id":"71a5854cafe678bd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2974,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler part + ways with their matey? Because they be wearied of always being tracked back + to their booty! Arrr!\\n\\n submitted by /u/coloquadrilla [link] [comments]\\n\\nCopy\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766897343,"trace_id":"3160c88d93e682f951cd87e4c34e937f","span_id":"0aaeafe9145c2882","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4074,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry scallywag + run out of doubloons? Because he be losin'' his traces at sea!\\n\\n Arrr! + \\n\\nA more risque joke:\\n\\nArrr, do you have\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762766885715,"trace_id":"322dadae4996655f91abfae91e18d2ad","span_id":"b023c24362d15498","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3387,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag split ways with Opentelemetry?\\n\\n''Cause + it was forever tryin'' t'' trace their every move! Arrr!\\n\\n Now that''s + a good joke.\\n\\n[Image] [Defining CNI](\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766874913,"trace_id":"eb1145bf197d2a24246db39ec60d0987","span_id":"4acf30ee78f0c6ef","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4085,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag switch to usin'' Opentelemetry? + \\n\\nBecause it be the only thin'' that could trace his rotten code!\\n\\n + \\n\\nWo ho ho!\\n \\n\\noriginal comment by iainc on 2021\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762766863851,"trace_id":"cdfe9fe01d2639bb950bb2efe86b5e5a","span_id":"03d583dc52b1fded","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3902,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a spyglass to + work with Opentelemetry? To help him spy all the tiny bugs! Arrr!\\n\\n \\n\\nBy + standardizing the definition of requests, spans, traces, and metrics in\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766847062,"trace_id":"4f3bd9f0f658e5a6e3000b6e48dac967","span_id":"4a4ac677e902b250","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5810,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy programmer bring a map + to the Opentelemetry conference? Because they heard they be tracing some serious + paths! Arrr!\\n\\n...\\n\\nRead More\\n\\nEver keen to fling yourself into + the vast embrace of monitoring\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766836090,"trace_id":"3d8f0808433b5d4eb5cad25e06f35645","span_id":"8807e3a770b70f09","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3465,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag sever ties with Opentelemetry? + ''Cause it couldn''t bear their plunder! Arrr!\\n\\n \\ud83d\\ude0e\\n\\nThis + is all for jelious!\\n\\nI still need to talk to\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766825982,"trace_id":"29bbc06aee05d1a3cb85f9e177d58d45","span_id":"e71f00df5c8c60ab","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4796,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with their + wench? Because she couldn''t handle all the plunder they were carrying! Arrr!\\n\\n + Why did Opentelemetry break up with their wench? Because she couldn''t\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766814928,"trace_id":"0392f2c1e8742ec8d9a00531b5e78ab1","span_id":"8fe91c1d8dea5ca6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4386,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did Opentelemetry break up wit'' + its lass? Because it couldn''t handle all the booty she be carryin'' around! + Arrrrr!\\n\\n M''lady! I know arrrr ticket to your heart!\\n\\nAhoy,\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762766799080,"trace_id":"8e1a287af097dafef65ca6e081a1ca33","span_id":"ec75cc01f4bd09d4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5810,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry data decide to + become a stand-up buccaneer? Because it always knows how to sail a good line! + Arrr!\\n\\n - The Edge confusionism\\n\\nInsert funny reaction\\n\\nCreate + your own thread! !\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766787717,"trace_id":"771a95352d415f2d6312356d8c21a837","span_id":"bf9960ce30b6178e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4735,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with its wench? + Because it couldn''t handle her loot!\\n\\n \\ud83e\\udd23\\n\\nvar B = function() + {\\r\\n const exampleSchema = new\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762766775995,"trace_id":"2dd7c823137d21968cc0b63235a0ff5c","span_id":"82427d50e2dcf773","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4215,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry cut ties with its reckonin'' + device?\\n\\n''Twas no match for its convoluted data! Arrr!\\n\\n Happy logging.\\n\\nAlex + Shaposhnik\\nPrincipal Architect \\nMore posts https://\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762766763696,"trace_id":"f031ce9ce76def6cb74a7d07ef051845","span_id":"d198a37524102fe3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4492,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they kept losing their treasure maps!\\n\\n \\\\*drumroll \\\\* :smoke\\\\_bunny: \\n(R\"","total_tokens":406,"span_count":34},{"environment":"prd","timestamp":1762766747529,"trace_id":"41c1eb7b3be668329e7291e81e6808b5","span_id":"f098c32ae2ea4524","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7563,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + Opentelemetry? ''Twas too much baggage for their partnership to sail smoothly! + Arrr!\\n\\n \\ud83d\\ude02\\n\\nIf you''re looking to quickly create lightweight + HTTP microservices running on\"","total_tokens":490,"span_count":34},{"environment":"prd","timestamp":1762766737392,"trace_id":"bccc0e8c277d7c9e03afecc614105871","span_id":"a5c2af467c4b719c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4149,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be it that the opentelemetry swashbuckler + be partin'' ways with their matey? ''Cause they couldn''t be handlin'' the + trace! Arrr!\\n\\n\"","total_tokens":500,"span_count":34},{"environment":"prd","timestamp":1762766705307,"trace_id":"e0924c37705793a9f874bb6929d2e864","span_id":"c6d683ce74db7d19","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3115,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the opentelemetry scallywag + always calm? Because they could always be tracin'' their steps!\\n\\n (via + Anosmuous)\\n\\nBoth responses to the parody go on to push\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766693313,"trace_id":"6e7d4260b7f00352c5d9cd9eba7ba8dc","span_id":"55d13deaef1ea222","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3979,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag quit using Opentelemetry? + Because it couldn''t handle the stress of always tracking their every move, + arrr!\\n\\n But that prompted inquiries into what really happened, and the + organization had apparently reached a\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766683583,"trace_id":"a805f24dff33eec339fc8979340d9055","span_id":"df91345c1491cb90","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3704,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry swashbuckler part + ways with their calculating contraption? ''Twas no match for their twisted + reckonings! Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762766672584,"trace_id":"e7f9ad3ed53cd935d1228f5fab906982","span_id":"19b4ac5fbbbea5a2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3265,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywags part + ways with the tracing library?\\n\\nBecause it couldn''t handle all the plunder! + Arrr!\\n\\n #opentelemetry\\n\\n\\ud83c\\udfb6 I''m just a poor moose,\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766659833,"trace_id":"107341e233cac60d8e5f0e11ba2ec8bf","span_id":"db28591f66144eae","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4128,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy software engineer bring + a spyglass to view Opentelemetry logs? Because they be wantin'' to see the + trace in \\\"full detail\\\"! Arrr!\\n\\n ARRRRRRR!\\n\\nThe other day I decided + to go back and re-engine\"","total_tokens":592,"span_count":34},{"environment":"prd","timestamp":1762766647952,"trace_id":"0e9ebe182023e619abd2341b5a6e2d58","span_id":"55736856c5bea6a5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3918,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler run + out of doubloons?\\n\\nBecause they be endlessly pathin'' their loot! Arrr!\\n\\n + Phenomenal Patido Patch!\\ufeff\\n\\n(edit) This is the only microp\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766638743,"trace_id":"ac1615d8995f15cc721468463528feff","span_id":"478eeec92d167ade","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3099,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye scallywag break up with Opentelemetry? + Because it couldn''t handle their loot! Arrr!\\n\\n #opentelemetry pic.twitter.com/OomIjf1xYa\\n\\n\\u2014\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766618305,"trace_id":"cb6895054d2b8203173b11e84dade34d","span_id":"70484c211bb83b68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":13491,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry scallywag + go broke? \\n\\nBecause they be sailin'' the high seas tryin'' to trace their + doubloons but always endin'' up with a NullPointerException!\\n\\n \\n\\nFor + more available jokes, use jokes.distillery:compine with the predefined\"","total_tokens":610,"span_count":34},{"environment":"prd","timestamp":1762766607064,"trace_id":"a585d1cbef71724245f30ff77b49bf0b","span_id":"01ff2ee4a6b05fb0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4521,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry tool break up with + the tracing software? Because it couldn''t handle all the booty it was carryin''! + Arrr!\\n\\n Argh! More\\nWhen you have muddynotebook, badabit\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762766589487,"trace_id":"23c665692bb0b524db2c8a5b04accb24","span_id":"110518ef137c51f8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4270,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they couldn''t track their doubloons! Arrr!\\n\\n \\\\_ Ok that cracked + me up.\\n\\nTrue story: I got hit on by\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766579148,"trace_id":"ed12d8fd3ee82c819864964679b85f08","span_id":"5be30cdff52d698d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4328,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask?\\n\\nBecause every time they tried to trace their doubloons, it resulted + in a never-ending loop! Arrr!\\n\\n I shall be in my little cave!\\n\\nWorst + Joke Ever? was originally\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762766546086,"trace_id":"93a1d5347329202243e31b4348c1f3cd","span_id":"c64f21fc259cac14","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":24215,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler bring + aboard a ladder?\\nBecause they be told they needed to trace all the steps + in their code, arrr!\\n\\n \\nAlso, why is an Airship named Huckabee? It''s + how many\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766527868,"trace_id":"3f7faad05a9b2527a213a4aafcff7caf","span_id":"540205bd7dad5118","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7740,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did th'' Opentelemetry plunderer bring + a cutlass t'' th'' software conference? \\nT'' sketch out th'' perfect tracin'' + path!\\n\\n (REI)\\n\\nWhy aren''t Oracle''s products conforming to spec? + \\n\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762766514275,"trace_id":"923966753adad02d97cd33c65797a694","span_id":"ddcc6392527e9810","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4247,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry matey go bankrupt?\\n\\nBecause + they be adding tracers left and right, but couldn''t follow any of the trails! + Arrr!\\n\\n\"","total_tokens":500,"span_count":34},{"environment":"prd","timestamp":1762766501105,"trace_id":"6bdd12fba84018d8b7b95ac05ed1ad85","span_id":"7d9b6b4f9e71d769","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6125,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry API go to therapy? + Because it had some serious plunderin'' issues! Arrr!\\n\\n \\n\\nJoin our + worldwide community of Adopters as they break new ground, building monitoring\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762766488354,"trace_id":"a0ccabc30f2092d584cedddc5ee16f00","span_id":"a508717a2efd6686","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3394,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag bring + a plank to the code inspection? \\n\\nTo aid in tracking and spanning the + potential barnacles!\\n\\n \\n \\n \\n\\n---\\n\\nSee and reply to @kestrelci''s + tweets\\n\\nCall\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762766472432,"trace_id":"5fba798ba3ae636db35217a136701330","span_id":"69995cb3bcd9560d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6064,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the buccaneer opentelemetry developer + go broke?\\nBecause he couldn''t spy his plunderin''! Arrr!\\n\\n8\u003e\\n\\n---\\nJoel + Kallman\\nChair, OpenCensus \u0026 Open\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766462109,"trace_id":"44fac01d2202b12bd5c57ab8481e0a08","span_id":"3a0266e15ded9306","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4346,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler bring + a spyglass to work? To ensure their trails be crystal clear! Arrr!\\n\\n Instead + of \\u201c swashbuckler\\u201d you can replace with \\u201cpirate\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766451143,"trace_id":"2ecb96582de209c84a01223282c5ef39","span_id":"1c3dfa1ee470cbc7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4106,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer break + up with their significant other? Because they couldn''t map a course for their + relationship! Arrr!\\n\\n @Weaver\\n\\nsymengine\\n\\nOne of the reasons I + don''t use Swift\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766438503,"trace_id":"b2669e723e000377b165558e38b6b370","span_id":"bc13059e2a3eac4e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4420,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry pirate go plundered + at the comedy ship? Because they couldn''t track where all the laughs were + coming from, arrr!\\n\\n This is what the Jokes page is about. We record our + expansion programming in\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766426947,"trace_id":"22a502e3ba4640cb8550bd24d59112aa","span_id":"535e9061c57475c2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4001,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it couldn''t handle their cargo! Arrr!\\n\\nSubscribe here for more + new videos every week. You may like these other hilarious stuff\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766409974,"trace_id":"ff512075a1dc7f8db109f3c460d4924c","span_id":"4d6548183f859bb6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6173,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scalawag bring a compass to work + with Opentelemetry? Because they didn''t want to get lost in all the trace + data, arrr!\\n\\n (I realize pirates aren''t medieval, but it''s good to add + a bit\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766397458,"trace_id":"83a9b1f537bd824286ba572a0ccb54c8","span_id":"472c986da9c3d80d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3842,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog go bankrupt trying + to implement Opentelemetry? Because whenever they tried to trace their treasure, + the tracing just kept looping back on itself! Arrrrr!\\n\\n What did the jester + write for ur warning on NLTM to warn freelance gr\"","total_tokens":598,"span_count":34},{"environment":"prd","timestamp":1762766386607,"trace_id":"e110b2c3688c31b85b38a1c5ccc952ae","span_id":"b8b297a14b09c2a3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3979,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with its mate? Because it couldn''t handle the booty of all that tracing! + Arrr!\\n\\n \\ud83d\\udc27\\n\\nAll kidding aside, the joke isn''t as funny + without it\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766375242,"trace_id":"54c41c0f29e39655e10472914fb897b0","span_id":"acf148ee35b14ec3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4060,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy opentelemetry scallywag + go broke? Because they kept trying to trace their doubloons! Arrr!\\n\\n\"","total_tokens":440,"span_count":34},{"environment":"prd","timestamp":1762766361069,"trace_id":"ff9954a1a436c4660e1fcf19a3c2895a","span_id":"4c98de470c673f60","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4730,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Cause it couldn''t keep up with its tracing! Arrrrr!\\n\\n \\ud83c\\udfa3 + New features coming to Jaeger When scheduling tests, there was no\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766348962,"trace_id":"36f8170538635117592d8b591f42481c","span_id":"d59e908a6bef9ec8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3513,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry keelhaul its ex? Because + it couldn''t chart the relationship!\\n\\n https://vanberchammer.com/2021/03/23/opente\"","total_tokens":406,"span_count":34},{"environment":"prd","timestamp":1762766335936,"trace_id":"4c298761c5f0187152fe859644574096","span_id":"6bb5a767b367110f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3670,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask?\\n\\nBecause they were always tracing their doubloons! Arrr!\\n\\n + \\ud83d\\ude2c\\n\\nsigned,\\n\\nBeat OPTLANG +OPTINSTRUME +OPTMET\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766320329,"trace_id":"351f98125fee646fc59789c0b80b05f9","span_id":"e5cc6c8fd8b72ce2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6183,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke? + \\n\\nBecause they couldn''t spy on their own plunder!\\n\\n\\nCustomMmmMiracle: + This is the level I''m at as well\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766307801,"trace_id":"47621a53bf4623cbca68665f0d843c8c","span_id":"90b4d1a01a4ad06e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5099,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry?\\nBecause + it couldn''t handle the weight of tracking all their troubles! Arrr!\\n\\n + \\n\\nIn all seriouness, clear tracing doesn''t write traces over a period\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766297177,"trace_id":"5798f0bb031aab66432ef7f512853d89","span_id":"3d60851b0d953096","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5111,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the openlemetry shipmate go broke? + \\n\\nBecause they kept followin'' their expenses! Arrr!\\n\\n \\n\"","total_tokens":394,"span_count":34},{"environment":"prd","timestamp":1762766284527,"trace_id":"e5d337b3a16dd632065d9ea855a6b452","span_id":"d777f80d717e728f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4097,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bust? + \\nBecause he spent all his doubloons trying to trace his footsteps!\\n\\n\"","total_tokens":452,"span_count":34},{"environment":"prd","timestamp":1762766262278,"trace_id":"74ea2f500d05dca368bb59903ff89236","span_id":"283e20390a2922d0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler part ways with Opentelemetry? + ''Twas unable to follow their relationship back to the source! Arrr!\\n\\n + Here''s blat :-):\\n\\npublic static void main(String[] args) {\\n Thread\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766243903,"trace_id":"1816fe48cfcc54caa6752d99b640485f","span_id":"6fa6cb2a265c0c29","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":9749,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry programmer go broke, + ye ask? \\n\\n''Cause he couldn''t spy any traces of doubloons! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nMeme aside, I am actually\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766233100,"trace_id":"d78b9c78ef148d108a5682778971a8bf","span_id":"b779a9f4eada13ac","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4944,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry library break + up with its wench? Because it couldn''t handle the cargo \\ud83e\\udd23\\n\\n\\ud83e\\udd23\\ud83e\\udd23\\n\\n\\\"the + library couldn''t handle the cargo\\\"\\n\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766220613,"trace_id":"3bb3d585d762d480371f1035381e4f1d","span_id":"52e075c5aa9df237","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5807,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask? Because every time they tried to trace their doubloons, it just kept + getting lost in the telemetry data! Arrr!\\n\\n You should have seen it coming + if you were paying any attention!\\n\\nEdit: or\"","total_tokens":592,"span_count":34},{"environment":"prd","timestamp":1762766206999,"trace_id":"bdb9d7c79e1cc807fee4c29f0ade340f","span_id":"bdd63372bfb6c620","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7788,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer break + up with their mate? Because they couldn''t commit to tracing the arrr-relationship! + Arrrgh!\\n\\n\\nDafinityshealthy: It''s a fair point though. XRay\"","total_tokens":514,"span_count":34}],"page_size":248,"total_results":248,"next_cursor":"1762766206999"}}' + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:19 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '{"filters":[{"field":"service.name","operator":"equals","value":"unknown_service","value_type":"string"}],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":10}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '280' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/traces/root-spans + response: + body: + string: '{"root_spans":{"data":[],"page_size":0,"total_results":0,"next_cursor":"-1"}}' + headers: + Content-Length: + - '77' + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:19 GMT + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/cassettes/test_traceloop_integration/TestTraceloopServiceOperations.test_get_service_operations.yaml b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopServiceOperations.test_get_service_operations.yaml new file mode 100644 index 0000000..576c701 --- /dev/null +++ b/tests/integration/cassettes/test_traceloop_integration/TestTraceloopServiceOperations.test_get_service_operations.yaml @@ -0,0 +1,844 @@ +interactions: +- request: + body: '{"filters":[],"logical_operator":"and","environments":["prd"],"sort_by":"timestamp","sort_order":"DESC","cursor":0,"limit":1000}' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '190' + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: POST + uri: http://localhost:3001/v2/projects/default/traces/root-spans + response: + body: + string: '{"root_spans":{"data":[{"environment":"prd","timestamp":1763273059770,"trace_id":"c4c7e548e1febe34757c208205caa53e","span_id":"6b3a38f23a58e2ec","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":68638,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":31096,"span_count":16},{"environment":"prd","timestamp":1763272977019,"trace_id":"f53581d7de2b03275fad361fd5a2a9fe","span_id":"51abd109e3f6fc45","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":80747,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":8650,"span_count":20},{"environment":"prd","timestamp":1763272914648,"trace_id":"83ba2d50d52cac29534deeb6f0197b60","span_id":"2c86398dc9615c3a","parent_span_id":"","trace_state":"","span_name":"Agent + Workflow","span_kind":"SPAN_KIND_CLIENT","service_name":"travel-agent-demo2","resource_attributes":{"service.name":"travel-agent-demo2","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.38.0"},"scope_name":"opentelemetry.instrumentation.openai_agents","scope_version":"0.47.5","span_attributes":{"llm.vendor":"openai_agents","llm.workflow.name":"Agent + Workflow","traceloop.span.kind":"workflow"},"duration":60364,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":25326,"span_count":26},{"environment":"prd","timestamp":1763027558008,"trace_id":"29fb03129fc8a5aeabd87def55435f43","span_id":"b205122711ccafe4","parent_span_id":"","trace_state":"","span_name":"traceloop_hub.chat","span_kind":"SPAN_KIND_CLIENT","service_name":"unknown_service","resource_attributes":{"service.name":"unknown_service","telemetry.sdk.language":"rust","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"0.27.1"},"scope_name":"traceloop_hub","scope_version":"","span_attributes":{"llm.request.frequency_penalty":"0.000000","llm.request.model":"gpt-5.1","llm.request.presence_penalty":"0.000000","llm.request.type":"chat","llm.vendor":"openai"},"duration":1312,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{"llm.prompts.0.content":"[{\"type\":\"text\",\"text\":\"explain + who are you and what can you do in one sentence\"}]","llm.prompts.0.role":"user"},"completions":{},"input":"","output":"","total_tokens":0,"span_count":2},{"environment":"prd","timestamp":1762953417208,"trace_id":"e2871b06600cb44f772523756bf99ad3","span_id":"0fd131a789f73d47","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4730,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye Opentelemetry scallywag refuse + to sport spyglasses?\\n\\nBecause they didn''t be wantin'' to be traced! Arrr!\\n\\n + (o_o)\\n\\nHic\\n\\nComment on my pie chart to go far in\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762953408597,"trace_id":"24ea21374323feef794238646e477d79","span_id":"de6df20819872a2c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3531,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they be always trackin'' their doubloons!\\n\\n (vessels)\\n\\n\\u200b\\n\\nKudos + and notes\\n\\nThanks to Challengepost\\n\\n\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762953399257,"trace_id":"8e56c0da1bbc9d38f850465b16f576c8","span_id":"927f3379364fa4a5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5194,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Ye scallywags, why did Opentelemetry go to + therapy?\\n\\nBecause it couldn''t decide what to plunder next! Arrr!\\n\\n + :''(\\n\\nThis week in the community\\n\\nWe\\u2019ll start this week\\u2019s + newsletter with\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762953388540,"trace_id":"7b10976a382a4da03a65d0fe62a577c2","span_id":"ad2847a9be3e29ae","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5514,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry crossin'' the road? + To be tracin'' the chicken''s course! Arrr!\\n\\n Oh, I guess I''m talkin'' + about Service Ubiquity Syb\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762953379719,"trace_id":"bcd7b1d8768b317dd242bd94eb7408b3","span_id":"3e118324957da813","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4335,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the opentelemetry project gettin'' + invited to all the parties? ''Cause it always knows how to trace the best + route to the dance floor, matey! Arrr!\\n\\n Could do with some more like + these, the game is fun but too few (\"","total_tokens":600,"span_count":34},{"environment":"prd","timestamp":1762953370495,"trace_id":"3b4bb9514dd569958055552049300802","span_id":"cba3c553393323d0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4266,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer part + ways with their matey? ''Twas unable to handle the cargo of their relationship! + Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nDocker Templates\\n\\nDocker''s\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762953353515,"trace_id":"e7d9bb89558607369072c3c8bd2f12c9","span_id":"4912b5b0e5d356f2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":12292,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle all the loot they were + lugging around! Arrrr!\\n\\n (Ayo, worth looting indeed! ) Nom nom nom (I''m\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762953344499,"trace_id":"30ad2430df17b657c6818f02b0994390","span_id":"86985a4e525f41f0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4048,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry matey break up + with their pirate partner? Because they couldn''t handle all the tracing and + metrics in the pirate ship! Arrr!\\n\\n Why did the https://esa.forholidays.net + friend stop talking to their straw\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762953334595,"trace_id":"56083b53bddc3528a00b43a81eb2e878","span_id":"93ebe98d0f1059c0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4244,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go to Davy Jones'' locker? Because he be keepin'' tryin'' to trace his doubloons! + Arrr!\\n\\n Thanks for the help! https://ocp.opentelemetry.io/faqs/\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762953325299,"trace_id":"ed1db63d39344f6e38c4d065061cee19","span_id":"816b8f401d905b8a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5086,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Cause it couldn''t bear their booty! Arrrgh!\\n\\n And now the joke is over. + Take that\\u2026 open telemetry!\\n\\nJust rolled out\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762953316987,"trace_id":"81efba5ce68e779bb5f3b0d31b47c823","span_id":"8d1a59600eb7f38e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3603,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag abandon OpenTelemetry? + ''Twas unable to bear their loot! Arrr!\\n\\n \\n\\u2014 Delan Derderian + (@delander) October 1, \"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762953307023,"trace_id":"62e0fbbb0a71525c8a8e9d557b1ad9ea","span_id":"4137788d234823f4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3839,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + Because every time they tried to plunder their loot, their software kept tracing + it back to the buried treasure! Arr!\\n\\n I wipe my blade over ye mustache. + I''m a Scot pirate scally\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762934412201,"trace_id":"49d5d6b3daf2664515b02429bc8ae605","span_id":"cce1f2187e8a4891","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3435,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with *************? + Because it kept trackin'' their every step! Arrr!\\n\\n \\u200b \\u200b \\uf101 + Show more stamp\"","total_tokens":438,"span_count":34},{"environment":"prd","timestamp":1762934406504,"trace_id":"fa87b605fb61bba992f4cfcd78eebc80","span_id":"c4b3f6bb033a5125","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2825,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler part ways with Opentelemetry? + ''Twas unable to handle the vast treasure trove of baggage it brought to the + arrr-lationship! Arrr!\\n\\n \\ud83d\\udcaa\\n\\nEmbrace the maritime spirit + of love: wait until Cupid\\u2019s\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762934399232,"trace_id":"df91903099d69a861f279b13a93a7979","span_id":"4840f6dd685aa774","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4232,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + every time they tried to track their doubloons, it caused a massive loop in + their treasure chest!\\n\\n\"","total_tokens":530,"span_count":34},{"environment":"prd","timestamp":1762934391128,"trace_id":"c4f4fe98db3079d1a865b766efb3aa5b","span_id":"fc77313f2cbf4477","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4692,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their *****? Because they couldn''t be handlin'' the constant tracing + and monitoring of their pirate ship! Arrr!\\n\\n [more about this one] https://openthread.biz/h3ers\\n\\n\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762934384071,"trace_id":"bc71b081e3fcc54add49df4a47e2b4e3","span_id":"61143bf3b7c2f019","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3977,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag go broke after + implementin'' Opentelemetry? Because every time they tried to trace their + expenses, they got lost in the instrumentation, ye landlubber!\\n\\n 2A @ + 100wkw\\n\\n\\t\\t #ubitux \\n\\t\\t \"","total_tokens":604,"span_count":34},{"environment":"prd","timestamp":1762934375395,"trace_id":"2b3fd2cd74288edb50227df93d95271e","span_id":"a0f393b0add45f81","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6004,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the ********* abandon *************? + Because it couldn''t bear the heavy cargo it was lugging around! Arrr!\\n\\n + Pirately best practiced in its most traditional sense, open governance. This + is why\"","total_tokens":490,"span_count":34},{"environment":"prd","timestamp":1762934361936,"trace_id":"162f9b44b57248c646cd5ba3f2e8ce5f","span_id":"9a0b32020700160b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8290,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the ********* goin'' broke tryin'' + to implement OpenTelemetry?\\nBecause they be spendin'' all their doubloons + on traces! Arrr!\\n\\n Piratenspuren!\\n\\nPosted in Software engineering + . Tagged with open-te\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762934352831,"trace_id":"793170d111beb46174b72352dfe9fd3f","span_id":"87bb449951820596","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6517,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ************* go to therapy, *****? + Because it couldn''t stop tracing its troubles back to its wee childhood days! + Arrrgh!\\n\\n I hate myself...)\\ndatingcrew **********: And\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762934346981,"trace_id":"73786765ef3c35353a66af6d7e608c9d","span_id":"2e34e64e4aeca7f7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2886,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy knave bring a spyglass + to the opentelemetry conference? \\n\\nBecause they heard they needed to trace + all the critters!arr!\\n\\n \\n\\n---\\n\\n^(*ascii-grin*)\\n^(*Originating + short story / jokes\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762934339515,"trace_id":"37fbcb8957a47e35b3fec75c15cf790b","span_id":"6e9ea6ac8651bfd3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3725,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the OpenTelemetry scallywag go broke? + Because they be always tracing their doubloons!\\n\\n #voltdays20\\n\\nDue + to an audio production error, I removed the\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762882544136,"trace_id":"6bbb8403d2eb125a06fa8ce4c556d2fe","span_id":"60547c73a0213dbf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5856,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler go + broke?\\n\\nBecause he couldn''t track his doubloons!\\n\\n\\ud83c\\udff4\\u200d\\u2620\\ufe0f\\ud83e\\udd9c\\n\\nDeploy + to *******\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762876898831,"trace_id":"91633fe5b739e62fc5bd0040d1a1d43d","span_id":"c534e161feec79f1","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2153,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ***************** + ever trust OpenTelemetry?\\n\\nBecause they think it''s just TraceLoop trying + to find a new way to get in a continuous monitoring circle!\"","total_tokens":106,"span_count":6},{"environment":"prd","timestamp":1762876886104,"trace_id":"902e7a664052d45e02f89a27ff35d159","span_id":"10a62397b767998d","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2756,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + opentelemetry ********** play hide and seek?\\n\\nBecause good luck hiding + when they''re constantly tracking everything!\"","total_tokens":94,"span_count":6},{"environment":"prd","timestamp":1762876158512,"trace_id":"03a9b680790bce44e3205f4aab4d80e6","span_id":"d0d114971be5eb3d","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":1670,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust the Traceloop Opentelemetry?\\n\\nBecause they think it might start + tracing back their coffee breaks!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762876152058,"trace_id":"4af9731d3e1f60eef6cc36725b38c91c","span_id":"6f9d3b1acdcf5881","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2945,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + ********* play hide and seek with OpenTelemetry?\\n\\nBecause no matter where + they hide, OpenTelemetry always traces them!\"","total_tokens":102,"span_count":6},{"environment":"prd","timestamp":1762876146566,"trace_id":"01230af98664970762df9e738b0cefa8","span_id":"25639527fdcc632e","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":2196,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + use TraceLoop OpenTelemetry to propose marriage?\\n\\nBecause it always traces + back the hidden errors and performance issues they''ve been hiding!\"","total_tokens":100,"span_count":6},{"environment":"prd","timestamp":1762876141358,"trace_id":"dae83ddb05d1de6f46bee25b25f8eb85","span_id":"407e6411343893ac","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":1944,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust TraceLoop OpenTelemetry?\\n\\nBecause they always feel like they''re + being traced!\"","total_tokens":82,"span_count":6},{"environment":"prd","timestamp":1762876133702,"trace_id":"7969294d9e5e91de2f08baf9f0b8ea1c","span_id":"91732e966d20ccbf","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":4108,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ****************** + use traceloop opentelemetry when they''re playing hide and seek?\\n\\nBecause + they don''t want traces of their hiding spots to be found!\"","total_tokens":110,"span_count":6},{"environment":"prd","timestamp":1762876116604,"trace_id":"a0d2158649575536608bc0801de67481","span_id":"0450db6a479748b0","parent_span_id":"","trace_state":"","span_name":"galz_joke_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"galz_joke_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"galz_joke_workflow"},"duration":4249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + and opentelemetry ever play hide and seek?\\n\\nBecause good luck hiding when + you''re always being traced.\"","total_tokens":96,"span_count":6},{"environment":"prd","timestamp":1762875538327,"trace_id":"7b50297899fe3dd4f2aeab46b39adf55","span_id":"a8f313b71de30a37","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2577,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like tracing with TraceLoop OpenTelemetry?\\n\\nBecause they say it has too + many \\\"strings\\\" attached!\"","total_tokens":90,"span_count":6},{"environment":"prd","timestamp":1762875532912,"trace_id":"f211ccc3649ce49ebb5f379f389245e6","span_id":"5e14007190a04996","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2400,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t traceloop + ***** play hide and seek?\\n\\nBecause good luck hiding when opentelemetry + is tracking every move!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762875527381,"trace_id":"a4d80e8a38620f8057e8b82f55442d1e","span_id":"ce4b33380523f3ec","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2096,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t trace + loop ********** ever get lost?\\n\\nBecause with opentelemetry, they''ve always + got their traces covered!\"","total_tokens":88,"span_count":6},{"environment":"prd","timestamp":1762875518407,"trace_id":"f6d85a873cd71f3178011c78bfe3f31f","span_id":"363e4314cd6bedaf","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1427,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ********** + trust traceloop opentelemetry?\\n\\nBecause they think it has too many \\\"trace\\\" + issues!\"","total_tokens":90,"span_count":6},{"environment":"prd","timestamp":1762875510595,"trace_id":"27723863f1f31912e557484b35028a7f","span_id":"444802a07e4a2240","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1668,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like the Traceloop Opentelemetry?\\n\\nBecause every time they use it, they + feel like they''re going in circles!\"","total_tokens":100,"span_count":6},{"environment":"prd","timestamp":1762875504586,"trace_id":"778cff9b7ce236170a093da70db72cc1","span_id":"e8c2a4919d560073","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2141,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + use traceloop opentelemetry at the beach?\\n\\nBecause they don''t want to + catch any bugs!\"","total_tokens":92,"span_count":6},{"environment":"prd","timestamp":1762875499105,"trace_id":"3e16f38a873585cd72aea85e282a8569","span_id":"1dc81f047f1fdc93","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":1920,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t ******* + use opentelemetry?\\n\\nBecause they always lose track of the punchline!\"","total_tokens":80,"span_count":6},{"environment":"prd","timestamp":1762875492559,"trace_id":"422301f6380204a39d5be637936752ff","span_id":"a0fc5826acd35a09","parent_span_id":"","trace_state":"","span_name":"joke_workflow_galz.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generator","resource_attributes":{"service.name":"joke_generator"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.entity.name":"joke_workflow_galz","traceloop.span.kind":"workflow","traceloop.workflow.name":"joke_workflow_galz"},"duration":2574,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [\"traceloop opentelemetry\"], \"kwargs\": {}}","output":"\"Why don''t *********** + like ********* opentelemetry for their morning coffee?\\n\\nBecause no matter + how many traces they put in, they still can''t find the source of their lack + of energy!\"","total_tokens":120,"span_count":6},{"environment":"prd","timestamp":1762875134977,"trace_id":"07947259563a8ca28f0e127d89836e79","span_id":"22925979afdc12b8","parent_span_id":"","trace_state":"","span_name":"pirate_joke_generator.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_1234","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"pirate_joke_generator","traceloop.span.kind":"workflow","traceloop.workflow.name":"pirate_joke_generator"},"duration":6127,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog break up with *************? + Because it couldn''t handle their plunder!\\n\\n\"","total_tokens":458,"span_count":18},{"environment":"prd","timestamp":1762865984713,"trace_id":"60b71343496d5de8175c102f436593e7","span_id":"7c041e220382472b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3614,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr *****, why did the opentelemetry API + cross the plank? To follow the chicken''s trail and gather metrics on its + voyage! Arrr!\\n\\n **************************\\u2026\\u200b\\ufeff\\n\\nAPI + Mode hides the\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762865976109,"trace_id":"44e199b6d766f3f71934417283c95ecd","span_id":"69b247c62f315587","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3565,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did ************* break up with + her *****? Because he couldn''t handle all her traces and booty! Arrr!\\n\\n\\ud83e\\udd23\\ud83e\\udd23\\n\\nlol. + 5% of you easily got\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762865964100,"trace_id":"bfb165bd79e9a09e9a9634597ef718c4","span_id":"de73baebd89cb9f3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6276,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Avast ye! Why did the Opentelemetry ******** + refuse to go to any parrrties? Because they were too worried about getting + traced! Arrr!\\n\\n ~\\u2026\\u2026\\n\\nuser-generator\\n\\nJoke generation + and share with rave plugin\\n\\nGenerating jokes\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762865956217,"trace_id":"28112445370e9ec3fd0bed9c132367a4","span_id":"0663470b333c77ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2892,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag take up skydivin'' + with Opentelemetry? Because they wanted to trace their code all the way down + to **********'' locker! Arrr!\\n\\n \\uf602\\n\\nYou might consider your short + rope joke in regard to AMQP\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762865947576,"trace_id":"76a845925ced5a08aa78b3cbb21c1ab9","span_id":"72b847e4cba0681e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3768,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project go to therapy? + Because it couldn''t stop tracing its issues back to its wee beginnings! Arrr!\\n\\n + \\ud83d\\ude02\\n\\nIs there a video tutorial about getting started with dynamic + tracing?\\n\\nIs\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762860688164,"trace_id":"bf628477f73b61c52d3c94e0109e3be7","span_id":"ad85c8de496d80c9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4070,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project graduate + at the top of its class? Because it always knows how to trace a good booty! + Arrr!\\n\\n \\n \\u2014 John Hawkes \\ud83c\\udf29 (@hawkesi) January \"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860680825,"trace_id":"b41f432c9d77df8b4d0bb5c2a10d6026","span_id":"2adffbdbf1796562","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2860,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry pirate part ways + with their abacus? Because it couldn''t handle the treasure map.\\n\\n\"","total_tokens":410,"span_count":34},{"environment":"prd","timestamp":1762860660182,"trace_id":"94636d1159e6fbf1b42336a5229e403d","span_id":"1d2434a64b0eb05c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3154,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up wit'' OpenTelemetry? + ''Cause it couldn''t handle their loot! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f!^\\u2693^\\n\\nwhat\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762860651651,"trace_id":"352069d7d78790e0f41ec2446d379d29","span_id":"053f289f3c3593c2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2848,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their matey? Because they couldn''t handle the constant tracing + and monitoring of their ship-shape relationship, arrr!\\n\\n #opentelemetry + #scallywag #daterape #abuse #\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762860643283,"trace_id":"a0bdf0b2555c0750deabaebbc0748292","span_id":"c8f7c0f78be2700f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3413,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the Opentelemetry scallywag go bankrupt?\\n\\nBecause + they be tracking their expenses too much! Arrr!\\n\\n =)\\n\\nSome more folksonomy + around these:\\n\\ntutorial(cvpov)\\n\\n[\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762860635364,"trace_id":"9306e235a77ef52f02f4742a6a47074a","span_id":"711ca09daf310b0f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2910,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry code break up with + its scurvy debugger? Because it couldn''t handle its booty!\\n\\n It was on + the war path with the debugger and they took it coxsack\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762860626884,"trace_id":"2d988533efefc0b37950704ccf3afdc8","span_id":"f2c5268154492ff7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3271,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library break up + with its wench? Because it just couldn''t handle all the loot she was plundering! + Arrr!\\n\\n (I couldn''t come up with anything for \\\"photon\\\")\\n\\nAnywho,\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762860618590,"trace_id":"cbbefa47114b1bd36416eb12c16772bf","span_id":"4d49b13ed57fe409","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3227,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye programmer part ways with Opentelemetry?\\nBecause + it couldn''t handle their booty! Arrrgh!\\n\\n Grrggrh!\\n\\n+4 \\n* Access + now only available for small\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762860609549,"trace_id":"20906e42e0315b7f50aa7be95c9cbbab","span_id":"2d3f4d680b7f2a06","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4018,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + Because they couldn''t track their pieces of eight! Arrr!\\n\\n\"","total_tokens":410,"span_count":34},{"environment":"prd","timestamp":1762860599926,"trace_id":"c28b02ff3de6d6e9bf3401a4683aa48d","span_id":"e66252dcf46d3ef9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4306,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry scallywag + bring a plank to work? To measure their trace spans!\\n\\n Why did the opentelemetry + scallywag go sailing? For datav\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762860591278,"trace_id":"6726bc6e291090c0646608cf9b653fe3","span_id":"219637a310c08b15","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3690,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle the traces of their ship-to-ship + communication! Arrr!\\n\\n \\ud83d\\udea3\\n\\nExample validating a transformer + PS1 file:\\n\\nimport pytype as\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762860583321,"trace_id":"037f79d53ee544c054a20c59d571300b","span_id":"5db9e6e12723caff","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3412,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the observability tool break up with + Opentelemetry? Because it couldn''t handle its loot!\\n\\n #opentelemetry + @opentelemetry\\n\\nTo this version I would add this\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762860573802,"trace_id":"3936090b5028d1a74bfd48a23532e6f8","span_id":"caffee6aa11e2105","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3673,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the buccaneer part ways with + OpenTelemetry? Because it be trackin'' their every step!\\n\\n M )=;\\n\\nI + had so much impro\"","total_tokens":446,"span_count":34},{"environment":"prd","timestamp":1762860566010,"trace_id":"8834e729ee0db5fa6cb27d7322e507e8","span_id":"72492a7fa0c4616d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2837,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the scallywag break up with + OpenTelemetry? Because it be too controlling and ne''er let them trace their + own path! Aye, me hearties!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762860556598,"trace_id":"1048d474902a6b414da80571d7433073","span_id":"4fc2a27d6a0bf318","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4366,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry developer + go broke?\\nBecause they kept spendin'' all their trace/span doubloons!\\n\\n\\nPentathll: + Impressive.\"","total_tokens":446,"span_count":34},{"environment":"prd","timestamp":1762860547003,"trace_id":"10a4a2547d800beba1b0c1f4ca04d3c8","span_id":"f9f7b5a2d03b0022","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4080,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + matey? \\nBecause they kept trying to trace their doubloons but always lost + track! Arrr!\\n\\n \\ud83d\\udc4a\\n\\nWho is eligible:\\n\\nOrganisations + and/or individuals having contributed to an\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860512121,"trace_id":"7b9f056e15dc8ed27e9ccf07fcecb7e3","span_id":"48e08dc37d40f1e9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":30269,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry buccaneer go broke? + Because he couldn''t track his doubloons! Arrr!\\n\\n\"","total_tokens":422,"span_count":34},{"environment":"prd","timestamp":1762860503630,"trace_id":"ab15d7224122fd882344902c1a89cda6","span_id":"f6d97fb1c8372500","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3539,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bankrupt? + Because they could never follow their doubloons'' trail! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nWhat + do you think about Opente\"","total_tokens":456,"span_count":34},{"environment":"prd","timestamp":1762860495903,"trace_id":"c5e4223c1b67a7cc3b736ed7fdde4f19","span_id":"25d67fa0a6d560ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2859,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr matey! Why did the opentelemetry developer + part ways with their calculator? \\n\\nBecause it couldn''t handle the metrics + of their complex relationship, arrr!\\n\\n \\n\\ndjswierad added Skills / + Alignment Aligned{Pun} humor\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860487890,"trace_id":"84415afa6974dd25887e9db4e3af234b","span_id":"672b9b7809ea0561","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3152,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the Opentelemetry buccaneer left penniless?\\n\\n''Cause + they be always followin'' their loot back to the treasure chest! Arrr!\\n\\n + \\n\\u2014 Jeff \\ud83d\\ude80\\u2604 (@jpvery) July 10,\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762860480529,"trace_id":"fa5db99822ec17d256c3605832e3357c","span_id":"9eeed58553feb292","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2902,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler bring a compass + when sailin'' the treacherous seas of Opentelemetry?\\n\\nBecause they didn''t + want to be lost in all the traces and spans, arrr!\\n\\n \\ud83d\\udc69\\u200d\\u2708\\ufe0f + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\n\"","total_tokens":610,"span_count":34},{"environment":"prd","timestamp":1762860471956,"trace_id":"11cf55bfa8b7799ef257f1646a3e06a7","span_id":"4554de23c407f4a0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3524,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywags use Opentelemetry? + Because they be wantin'' to trace the path of their good humor to see if any + scallywags be chucklin''! Arrr!\\n\\n That be the finished joke, myst''ries + of the scallywags!\"","total_tokens":586,"span_count":34},{"environment":"prd","timestamp":1762860464149,"trace_id":"aa87cf13db72580aad61549b9ec433aa","span_id":"3632fc39b6f2cdc1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3319,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry go to the therapy? + Because it be havin'' trouble tracin'' its issues back to the root cause, + arrr!\\n\\n (\\n\\nhttps://blog.apigee.com/detail/opentelemetry_aspires_to_scale\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762860455247,"trace_id":"383d7048a3a2f32ea0d1572d438c227c","span_id":"4e1d2ea0385b3837","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4216,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + OpenTelemetry? Because it always traced back their troubles to a time before + they crossed paths.\\n\\n Fear not, they\\u2019ve been at it for years but + never get about past tracing\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860447816,"trace_id":"c9feab8a69d10d9603ddd34bd327a658","span_id":"be08e31cfcccc63f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2871,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry scallywag + part ways with their matey?\\n\\nBecause they couldn''t haul all the tracing + and baggage aboard! Arrr!\\n\\n (again, to emote the pirate life)\\n\\nAdditional + points if you make a\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762860439149,"trace_id":"136bea198e39e4d59f2d2e0e2bcfcefc","span_id":"63ca48cc2bc7344e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3633,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry library go + to therapy? Because it had trouble tracking its own self! Arrr!\\n\\n P/s: + I hardly enjoy latka quotes and posters but just can\\u2019t help\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762860431296,"trace_id":"114027d76d0cc196b35d214f28472ce2","span_id":"f32bd038d9f0880b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3039,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry matey go broke?\\n\\nBecause + they spent all their doubloons on tracing! Arrr!\\n\\n Arrr! Arrr! He! Ha! + Ha! Hehehe!\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762860421168,"trace_id":"a4167da239aa1ec80261bccacc2c39ac","span_id":"6725cc8a12222763","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5158,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag go broke after using + Opentelemetry? Because they kept getting traced back to their expensive rum + addiction! Arrr!\\n\\n \\ud83d\\ude42\\n\\n5. Note that we are using OpenCensus + and had no specific intent\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762860412080,"trace_id":"755338cb8ce3cf9777393876531ca00a","span_id":"c1c3bfc917e2f79d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4493,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag part + ways with their reckonin'' device? ''Twas no match for their tangled trail + o'' breadcrumbs! Arrr!\\n\\n Link. -Professor, Op''n Telemetry 2021\\n\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762860402858,"trace_id":"4c92c24d46eed7675589cfcc092c253f","span_id":"17390bfc77f4266b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4168,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring Opentelemetry + to the gathering? Because they heard it be great at tracing! Arrr!\\n\\n Okay, + okay, need some more? Well, er... All hands on deck\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762860388848,"trace_id":"553765834a854969c13c3e5d17b884ec","span_id":"9bc3db87faa57a1f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8893,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project go to therapy? + Because it had trouble tracing its loot!Arrr!\\n\\n If you''re reading this, + go read the funniest anime/manga ever:\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762785955592,"trace_id":"9473d856f0fb069a22e913103a746ad3","span_id":"15bf4ec44889f180","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_075fbbdb96e9af46006911faa3f54481909b61bdc5c807b286","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"60","llm.usage.reasoning_tokens":"0","llm.usage.total_tokens":"79","llm.vendor":"openai"},"duration":2947,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{"llm.prompts.0.content":"Tell + me a short story about a unicorn in three sentences.","llm.prompts.0.role":"user"},"completions":{"llm.completions.0.content":"In + a hidden glade, a lonely unicorn named Luna discovered a shimmering, broken + star. With gentle magic, she mended its light, restoring its brilliance and + illuminating the forest. From that day on, Luna''s kindness made her the guardian + of the night sky, shining brighter than ever before.","llm.completions.0.role":"assistant"},"input":"","output":"","total_tokens":158,"span_count":2},{"environment":"prd","timestamp":1762785143238,"trace_id":"8f05061d17f524e31598c0bcae590fdb","span_id":"0388abb59cba11c7","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_0aee38983ba020f9006911f7778f64819680869db9132ee03b","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"75","llm.usage.total_tokens":"94","llm.vendor":"openai"},"duration":4113,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":188,"span_count":2},{"environment":"prd","timestamp":1762784660114,"trace_id":"05c7f5f57a38549f021056cd1130ad3f","span_id":"b84f4ce2adff578e","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_002f65e8b94d004d006911f59498d88196885818328de36bde","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"82","llm.usage.total_tokens":"101","llm.vendor":"openai"},"duration":4177,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":202,"span_count":2},{"environment":"prd","timestamp":1762783979080,"trace_id":"e9a9702f7018c19df55ccff1c44259ba","span_id":"03376cf854e395e6","parent_span_id":"","trace_state":"","span_name":"openai.response","span_kind":"SPAN_KIND_CLIENT","service_name":"customer-test-sync","resource_attributes":{"service.name":"customer-test-sync","telemetry.sdk.language":"python","telemetry.sdk.name":"opentelemetry","telemetry.sdk.version":"1.34.1"},"scope_name":"opentelemetry.instrumentation.openai.v1","scope_version":"0.47.5","span_attributes":{"llm.request.model":"gpt-4.1-nano","llm.response.id":"resp_04187afe5c01e2d7006911f2eb72c4819793ab9276293fc680","llm.response.model":"gpt-4.1-nano-2025-04-14","llm.usage.input_tokens":"19","llm.usage.output_tokens":"76","llm.usage.total_tokens":"95","llm.vendor":"openai"},"duration":2590,"status_code":"STATUS_CODE_OK","status_message":"","prompts":{},"completions":{},"input":"","output":"","total_tokens":190,"span_count":2},{"environment":"prd","timestamp":1762775860904,"trace_id":"56023bf649c206e89fc2b670f2c66a59","span_id":"d4bdb28ce8ae9690","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3561,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bankrupt? + \\n\\nBecause they couldn''t follow their doubloons! Arrrgh!\\n\\n\\nShroom0Hismom: + Rats! I thought I had identified\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775849822,"trace_id":"89f85cf730dbfbd33fc6018074a1938b","span_id":"7b1185bf2063858e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3742,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the programmer partin'' ways with + Opentelemetry?\\n\\nBecause it couldn''t handle their plunder!\\n\\n \\ud83e\\udd23\\n\\n@bradjamie + Should I apply that joke to the\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775837520,"trace_id":"c4c2dde5f42d62942b358bd86124f756","span_id":"9e7842b78cd58912","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4712,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the developer breakin'' up with + OpenTelemetry? Because it couldn''t handle their high data-ndency relationship, + matey!\\n\\n John Wheeler, 2022\\n\\nad\\n\\nPerformance Issues\\n\\nBeing + a tool built\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762775826984,"trace_id":"fde3ef0c3d4b42a2c6f79b76bb578874","span_id":"062029965266f471","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3561,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog bring a spyglass to + the ship? To aid in their opentelemetry debugging! Arrrr!\\n\\n :pirate_horse:\\n\\nOr + even better: Edit: thanks Darkus!\\n\\n\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775815103,"trace_id":"7b634abb1072632588027d0143cdf1af","span_id":"873fe257d4f4cad1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4707,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry library sailin'' + to therapy?\\n''Cause it be havin'' too many traces o'' codependency! Arrr!\\n\\n + :-) :-)\\n\"","total_tokens":482,"span_count":34},{"environment":"prd","timestamp":1762775804937,"trace_id":"16291a8dcd564cc4416432ad6ad7e7f2","span_id":"d832912953df806a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3433,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry ship break up with + its mate? Because it couldn''t handle the cargo of all their loot and trails! + Arrr!\\n\\n Just a friendly jest to brighten your day.\\n\\nHey bleep coders,\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762775793642,"trace_id":"cf990834616bbd967beded9c2101f85f","span_id":"98049fda3fa9c582","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3663,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause they were always tracing their doubloons! Arrrgh!\\n\\n \\nhttps://stashfiles.com/v/79VG4FSGr\\nhttps://\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775781627,"trace_id":"081b9350a02a2413ab2ef94acc9a3644","span_id":"fc56886362e17250","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4762,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke?\\n\\nBecause + they lost track of all their treasure maps and loot! Arrrr!\\n\\n (\\u23de)\\n\\n\\ud83d\\udd17\\u200b + why-vs\\n\\nWhy the burrito\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775768767,"trace_id":"2807154e3303c8da1f1d40999049601e","span_id":"c6fb29708418bfa8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5151,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer go broke? + Because he couldn''t follow his doubloons!\\n\\n \\ud83d\\ude1c \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nNot + my joke, but\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762775756509,"trace_id":"eeab44f6100c0e544403535b9ffdc022","span_id":"78ab1a23ca24d493","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4428,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry part ways with the + other scallywags in the software world? Because it yearned for more \\\"trace-ability\\\" + in its relationships, arrr!\\n\\n Tune in next year \\u2014 now that we''ve + had two weeks to cram more references\"","total_tokens":568,"span_count":34},{"environment":"prd","timestamp":1762775745172,"trace_id":"724fa136632254633d70531259ff8086","span_id":"38162041bba3fa98","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4736,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry go to the party alone? + Because it didn''t want any scallywags following its trail! Arrr!\\n\\n \\ud83e\\udd7a\\ud83d\\udc85 + Help! I don''t know.\\n\\nDrop them a comment\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762775734015,"trace_id":"69a5928c1b79ecde6aebf4b741a08acb","span_id":"7091efda2f5aacb8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3187,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the OPentelemetry buccaneer bring + a ladder to the coding shindig? Because they heard it be a fine tool for tracing + \\ud83d\\ude09. Arrr!\\n\\n Read more\\u2026\\n\\nBe Assertive. Be Positive. + Be Here. Be Human.\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762775722066,"trace_id":"6677529419af262952cc36f952cb9ef0","span_id":"efb0e8fcd84b11a0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4126,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag install Opentelemetry?\\n\\nBecause + they heard it be a grand way to trace their steps and not get lost in the + code! Arrr!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762775707960,"trace_id":"3d81ea952f9d1e2fae80a7016382523d","span_id":"ee20de3375541421","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6223,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Yarr matey, why did the scallywag break up + with OpenTelemetry? Because it was always tracing their every move! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nReal-Time Upserts with Lamson\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762775695005,"trace_id":"411b3403521ba1d4158d7c060a99a365","span_id":"77a4b8ceb1718e86","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4192,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag toss Opentelemetry + overboard? ''Cause it couldn''t handle their plunder! Aargh!\\n\\n [Image: + :pirate_flag:] [\\ud83c\\udff4\\u200d\\u2620\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775684156,"trace_id":"a571d6eeb6443ed93e0728c03fc0bf19","span_id":"ab8fd84972a01db4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy opentelemetry developer + go broke?\\n\\nBecause he couldn''t track his pieces of eight efficiently! + Arrr!\\n\\n DISCLAIMER(I sort of stumbledover on the damned what had been + my private account here\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775668562,"trace_id":"cba900a0eb151af4529f23b39a87df66","span_id":"502eeb2b38daccd6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5102,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke?\\n\\nBecause + they be always be collectin'' traces but never addin'' any values! Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762775659547,"trace_id":"c68d479688d5900f51b52e15ea132e89","span_id":"eb8bdd20cfc15d9b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2858,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\nBecause + they kept tracing their doubloons and lost track of it all! Arrr!\\n\\n\\nOpethashKnifeLenght: + \\u2611\\ufe0f \\u2611\\ufe0f \\u2611\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775644254,"trace_id":"24ac559bf9216b9f7d6d68f7af7d0e88","span_id":"1bbf105504b4c1fe","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6006,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go bankrupt?\\n\\nBecause + they be always trackin'' their doubloons! Arrr!\\n\\n Geehaw!\\n\\nApparently + skip the introduction to aliases\\n\\nIf the arrival of the\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775634693,"trace_id":"85afcd799d91a5913e012224a6a6f911","span_id":"c26094211df18ac9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3519,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the opentelemetry framework + bring a spyglass to the parrrty? Because it wanted to be sure it was tracing + all the fine details!\\n\\n \\u2014 Copernicus\\ud83e\\udd16 (@ParametricBot) + February 19,\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762775622819,"trace_id":"71aa87c7d388ee230e27035e0df2ce1e","span_id":"d4b4eca4783170d2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4849,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t track their doubloons with all those open-source logs!\\n\\n + Why did the opentelemetry scallywag go broke?\\n\\nI''m familiar\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775606808,"trace_id":"c5cbea7dd622e781f43923c2b40ddc78","span_id":"c343012d6d8795b9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3642,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project get invited + to all the parties? Because it always knows how to track a good time, arr + matey!\\n\\n pic.twitter.com/vu3SBOTrcG \\n \\u2014 Marc Verwer\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775595553,"trace_id":"acdc0405db218f261adc35c49b167be4","span_id":"2e82401f54912747","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5166,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke? + Because they couldn''t be tracin'' where all their doubloons went! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\nAnonymous1u5now 201\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775585605,"trace_id":"3bb5c80a23eaba409d3f010039774055","span_id":"b34246544fe8806b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3528,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + Because it couldn''t handle their plunder! Arrr!\\n\\n \\n\\nRepository for + spark with https://github.com/opentelemetry/opentelemetry-java\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762775573157,"trace_id":"2192b6ad5a7d6efba67b5ec9982008b3","span_id":"ce9d0966ebeda6e7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3942,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Twas too clingy and forever wanting to trace all! Arrrgh!\\n\\n https://t.co/xRsumcKFam\\n\\n\\u2014 + Explore and Conquer\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762775553865,"trace_id":"699d7e5cc072cef959e0db5b2bba6d79","span_id":"d8288ec5968a3522","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4050,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a spyglass to + the Opentelemetry gathering? To assist in tracking down them tiny critters! + Arrr!\\n\\n \\ud83d\\ude0e\\n\\nNo related posts.\\n\\nHere\\u2019s be th\\u2019 + Firs\\u2019 annual\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762775543847,"trace_id":"6268b28bfc6439dd2b620d3f09b52f62","span_id":"020bc29266ed741c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4675,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arr matey, why did the opentelemetry scallywag + go broke? Because they couldn''t trace their doubloons! Arrr!\\n\\n\\ud83d\\ude06\\ud83d\\ude06\\n\\nThis + is literally me I can identify with this A++\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775533158,"trace_id":"1dcea007f4cd4a4a13f8580b2d6870dd","span_id":"d476459c721dad7d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3246,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye scallywag sail away from Opentelemetry? + Because it couldn''t handle their loot! Arrr!\\n\\n (inspired by a meme)\\n\\nThe + next part that i was sorta struggling\"","total_tokens":444,"span_count":34},{"environment":"prd","timestamp":1762775520363,"trace_id":"90dbcc3e810615d56cd824bf078327b5","span_id":"5078dacc1a972fc6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5402,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry crew cut ties with + its wench? Because it couldn''t handle the weight of all those traces and + metrics, arrr!\\n\\n \\n\\nNo one can see the ''graveyard'' until the deck + is stacked against\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762775417577,"trace_id":"cbf5199799a08e8732e478fe46b2a7a8","span_id":"6b8d43971e7d6fcc","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5258,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy dog use OpenTelemetry? + To trace their problems back to the source, matey!\\n\\n He swaggers away + into the sunset, and you laugh at his boot-\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762775403936,"trace_id":"bd7a2da05bec2f29078900644918160e","span_id":"aed7db40b9db984b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7540,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arr, why did the Opentelemetry scallywag + part ways with their calculator? ''Cause it couldn''t handle all the traces + and metrics, arr!\\n\\n\"","total_tokens":488,"span_count":34},{"environment":"prd","timestamp":1762775390195,"trace_id":"438596ff908c3f548826c9aadfba675f","span_id":"a41d61a0dd36871b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4925,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go busted? ''Cause he couldn''t be tracin'' his loot! Arrr!\\n\\n?\\n\\nThen + in the next bag you pull out only chocolate coins!\\n\\nMore hashism\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775378010,"trace_id":"a48c43e75158c6045855e71934e44072","span_id":"15ff08da12657158","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4583,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag install Opentelemetry? + Because he couldn''t follow his own trail without it, arrr!\\n\\n\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762775365786,"trace_id":"62dfccd9b74191c3574a14f0d1bf8e13","span_id":"97ef15d836de403c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6226,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry toss the networking + protocol to the sharks?\\n\\nBecause it couldn''t handle the weight of all + those treasure maps! Arrrr!\\n\\n \\ud83e\\udd23\\n\\nIllustration by Adam + Teague\\n\\n#Opentelemetry\\n\\n\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775354906,"trace_id":"59682a7725a4dd42f2eea11a5d54f6f8","span_id":"983b7be0d44be784","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4253,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + Opentelemetry? Because it couldn''t handle their booty! Arrr!\\n\\n :pirate:\\n\\nFinal + Thoughts\\u00b6\\n\\nWe created an application in Flask that writes\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775344019,"trace_id":"576684ceec56843cefb1dadb8d6a645a","span_id":"78be3a546c03a5d4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4124,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, matey! Why did the scallywag bring + a compass to the Opentelemetry conference? To navigate through all the traces + and spans, savvy!\\n\\n **Editor\\u2019s Note: This joke is a spoof. No organisational + relationship is\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762775314952,"trace_id":"3929b803d6eff1d6784ce0c0a49bdf36","span_id":"45fe4aa168951940","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":21712,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer part + ways with their matey? ''Twas because they couldn''t handle all the loot they + be haulin'' around! Arrr!\\n\\n And then he grinned with glee And retorted + yeeyah, I be\"","total_tokens":544,"span_count":34},{"environment":"prd","timestamp":1762775301603,"trace_id":"56b81992d0d3461ca1940ce2a54edf64","span_id":"f228fb4269b5f5cb","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6909,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go broke?\\nBecause he kept trying to trace his doubloons!\\n\\n \\n- I Know + Minutes after rereading Natalie Dahl''s \\\"I Know\\\"\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775290083,"trace_id":"f3f9134a25e1417be43691c22a7cbf19","span_id":"046933808ecb6f30","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5143,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go to + Davy Jones'' locker? Because he kept collecting traces without ever making + doubloons! Arrrr!\\n\\n (I''ve been editted by @Krug)\\n\\nBut in praise of + The\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762775279444,"trace_id":"2337d4f4cb511095eca68cc441cd8e0e","span_id":"33ea9d744354fa4c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3692,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry developer part ways + with their significant other, ye ask?\\n\\nBecause they couldn''t be handling + the constant tracing and monitoring of their relationship, arr!\\n\\n Ya see, + instead on being going on dates or getting time to meet and talk\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762775266882,"trace_id":"6bdb7916feead1af63c4822a88925fe8","span_id":"87a141bfe5e7542b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4502,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause they be always collecting traces but never had any spans! Arrr!\\n\\n + \\n\\n\\n\\n\\n\\nYAARRRR!!!\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762775253073,"trace_id":"7a61392547fd85c667f33075af2eabc2","span_id":"7bf4bc396dfb17f0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4194,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it couldn''t handle their booty!\\n\\n (sorry, just had to do it).\\n\\nNaah, + I think its rather\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775241096,"trace_id":"c55867eb170e92d666fa7ee593408ac6","span_id":"84ab6f4c64c9dd68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4042,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask? Because every time they tried to trace their expenses, they got lost + in the distributed transactions, arrr!\\n\\n On a voyage for Blah, they dutifully + submitted required information to \\u201c\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762775224080,"trace_id":"249fde3beeb4bfac26ba32adccb78f54","span_id":"f73a534ec54e004c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5518,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why be it that the opentelemetry scallywag + be parting ways with their matey? ''Twas because they couldn''t handle the + constant tracing and monitoring of their shipshape relationship! Arrr!\\n\\n\"","total_tokens":584,"span_count":34},{"environment":"prd","timestamp":1762775208371,"trace_id":"0e1c9b7b49806435c897f47a24ded9f6","span_id":"edd58191d3053145","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8707,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry code sit in the + dark corner?\\nBecause it be not able to trace its way out! Arrr!\\n\\n I + could seek more if you please!\\n\\nI trust you enjoyed the cross-language + play\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775197875,"trace_id":"2fff99798d112618d097028eb04f1ea9","span_id":"59429f0185316db2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4198,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the opentelemetry framework + part ways with the scurvy tracing library? Because it couldn''t handle the + heavy baggage! Arrr!\\n\\n \\u2014 Scott Thiemt (@ScottThiemt) September 3, + \"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762775186146,"trace_id":"9fa695af6f7c06f8e9eacb055cbe9b75","span_id":"9c36231727b771d5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4859,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry developer + go broke? Because they be always tracin'' their doubloons!\\n\\n*\\n\\n*NB: + Please note that many pirates were slaves. Do not translate this\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762775172403,"trace_id":"69735492db8435118f5ab162117921f7","span_id":"a66e34326d5461a7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4773,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library go to therapy? + Because it be feeling measured and traced all the time, arrr!\\n\\n \\u2261 + flarum/wall Message\\n\\nThis one is harder to guess.\"","total_tokens":460,"span_count":34},{"environment":"prd","timestamp":1762775162232,"trace_id":"4f193c8f0ea2069f6dd5d775067d76db","span_id":"a871447570190e3b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4578,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag go broke tryin'' + to implement OpenTelemetry? ''Twas because they couldn''t trace where all + their doubloons went! Arrr!\\n\\n /giphy horrorscope-with-architecture\\n\\nThere\\u2019s + also a possibility of changing\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762775148189,"trace_id":"3c3e8d4a8cd0aae33ef0027a5c19e3b4","span_id":"735fd724bbbe3952","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5752,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer break + up with their matey? Because they couldn''t handle the heavy cargo of all + that tracing and logging! Arrr!\\n\\n ^^^^^\\n\\nNot So Serious\\n\\nAnnouncing + the Availability of Nitro, Google\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762775136242,"trace_id":"e473d729f7d5db5c60d927a6ca0a1b1a","span_id":"9e296f36cefb00d8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2755,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with Opentelemetry? + Because it couldn''t handle their plunder!\\n\\n\\nOP: Yeaaaaah! Hadn''t had + that one yet! Brilliant\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762775123420,"trace_id":"f42ac6589bbfd0f08242005e2f3afdba","span_id":"0d23849ab6f731b2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5067,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it be always tracing their every move, arrr!\\n\\n #prometheusjs #cli\\n\\ny''see, + it''s funny if you\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762775108234,"trace_id":"d0c09d5128156cc4529a7cd219177e74","span_id":"2b905d5b1e0a05fd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4258,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag break + up with their mate? Because they couldn''t handle the plunder of their past + traces!\\n\\n Give us your jokes!\\n\\nSignatures\\n\\nA signature is crucial + when talking about the\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762775097352,"trace_id":"53704c161358ca33de40f9e98dacd1ee","span_id":"fe35c75530b30e3f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3828,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a compass to + the Opentelemetry conference? To navigate the treacherous waters of telemetry + data and avoid getting lost at sea! Arrrrr!\\n\\n Why did the scallywag bring + a compass to the Opentelemetry conference\"","total_tokens":580,"span_count":34},{"environment":"prd","timestamp":1762775082445,"trace_id":"4ed52b5dce9a0d9b4459b812e550a2d2","span_id":"6108e110c68c79c6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3956,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry mate always calm? + ''Tis because they could always trace their steps! Arrr!\\n\\n Happy halloween!\\n\\nHelp + hunt a Hacker\\n\\nCyberMentor\\n\\nTwo\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762775069391,"trace_id":"c1bb2fee1f5214bdd0ea833b989cd566","span_id":"70ba95f88c81d899","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6709,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + matey?\\n\\nBecause they were always tracing their doubloons! Arrr!\\n\\n + \\u2620\\ufe0e\\n\\nNeat! Thanks for sharing - reduce() , map\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762775058332,"trace_id":"5d65064c5debc8a60b97170f9baade36","span_id":"1c0aed5b77ed0ebf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4549,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did t'' opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t spyglass where all their doubloons went! Arrr!\\n\\n\"","total_tokens":458,"span_count":34},{"environment":"prd","timestamp":1762775042772,"trace_id":"6d9d5003dc3b6373b754e57265279af3","span_id":"c717d054a870a88d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4964,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go swashbuckled? + Because they kept losing track of their traces, arrr!\\n\\n?\\n\\n(If you + don''t get that last part, please remember to consult Michael\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762775030940,"trace_id":"c935cf2fdd4f60ce52d8658bf97f9ed7","span_id":"345ed542ef29c4a9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3605,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry? + ''Twas no good in keepin'' their trace affection! Arrr!\\n\\n These were bad. + Come up with your own \\\"Who''s the guy?\\\".\\n\\n\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762775018965,"trace_id":"0562c00381455e099e31a58f12a478eb","span_id":"061144036f690db3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3915,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer walk + the plank with their matey? Because they couldn''t handle the constant tracking! + Arrr!\\n\\n Only shamrock you''re on a ship! Thank you, thank you, I\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762775002814,"trace_id":"bc9ef653dff2509884f4466d406ac947","span_id":"b0057f7dff90c15b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag scuttle with OpenTelemetry? + ''Cause it couldn''t handle the binding to trackin'' all their booty! Arrr!\\n\\n + Tweets by Sophist Satellites\\n\\nLike, Share, Enjoy\\n\\nSanta Space Crus\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762774988949,"trace_id":"03a9747d7450995fb951c08809218f83","span_id":"bb3c652f72a3c079","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3909,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\n\\nBecause + they spent all their doubloons on traces! Arrr!\\n\\n Chuk!\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762774972534,"trace_id":"046a17988791c4587fcbe5507bc1430e","span_id":"2dfacec9ebf29a68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4048,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye opentelemetry code break up with + the debugger? Because it couldn''t handle its booty! Arrrgh!\\n\\n Look what + ye crosshatched yourself into! Arrr!\\n\\nThe Yarrr\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762774960034,"trace_id":"7cd645e79ddc8a0aa6c960e2035595de","span_id":"9ab90bca4dd7f84d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6078,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke?\\nBecause + he kept trying to trace his doubloons!\\n\\n\"","total_tokens":404,"span_count":34},{"environment":"prd","timestamp":1762774943829,"trace_id":"2b6942b7519466a82ae9024133f9a72a","span_id":"670b7e94fe6e9f5a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":9820,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go poor? + \\nBecause they always kept spending their traces!\\n\\n \\n\\n\\ud83d\\udc4d\\n\\nGoddamnit + this thread should be frontpaged.\\n\\n\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762768685146,"trace_id":"7de43b9d1fe63737ad41c457d7c9d65f","span_id":"78b6c55a07368872","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4251,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with Opentelemetry? + Because it kept tracking their every plunder!\\n\\n \\ud83c\\udf0a\\n\\nYou + can read the full conversation on HN or Smallest\"","total_tokens":424,"span_count":34},{"environment":"prd","timestamp":1762768673834,"trace_id":"f9a19088aecb8c673120549516a0b6be","span_id":"e31fb2f5daa6d585","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4949,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry scallywag + break up with their scallywag matey?\\nArrr, because they couldn''t handle + all the marks of their ex''s past flings!\\n\\n\"","total_tokens":578,"span_count":34},{"environment":"prd","timestamp":1762768656170,"trace_id":"36303e053c26cf96ff2bc263f235e077","span_id":"1ed56dddbab5e857","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3408,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the scallywag part ways with Opentelemetry? + Rotten because it couldn''t handle all the cargo in their sailin''!\\n\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762768647120,"trace_id":"88e36825d45366f487f7c424ddf65505","span_id":"c3e6f960f1ac3306","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3946,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they kept tryin'' to trace their doubloons flow but it always ended + up gettin'' lost in the trace context! Arrr!\\n\\n\\n6callion: CRISTIANOPENTETICALMOMIES!\"","total_tokens":628,"span_count":34},{"environment":"prd","timestamp":1762768636361,"trace_id":"31ec0417c5b66ab64c3ce4daa1a4db85","span_id":"e635edd3e7e8bda3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5932,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they be always tracing their doubloons! Arrr!\\n\\n \\u2620\\ufe0f + #apitweet\\n\\nOpentracing is an open source standard\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762768625672,"trace_id":"bc3cb493dbd4267d8929ecfb869b3696","span_id":"0389ed590a9b9ba7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry? + ''Cause it couldn''t hoist their cargo! Arrr!\\n\\n What does Captain Morgan + call his armored tank? His breastplate! Who was trying\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762768615339,"trace_id":"524d0ebbb4ae332d3df47df4294eb0bf","span_id":"7550c4d8643fb8af","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3461,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag bring + a ladder to the code plunder? Because they heard they needed more tracing! + Arrr!\\n\\n\"","total_tokens":458,"span_count":34},{"environment":"prd","timestamp":1762768604699,"trace_id":"e9de05cc8e2d936c458b850b7961d9b6","span_id":"385d56a06b0995a6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3420,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with their significant other? Because they couldn''t plunder their relationship + back to the source! Arrr!\\n\\n \\u2022 8\\u2014 8(\\n\\n) \\u00f7 0_-_\\u00ac + \\u2227 \\u2227\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762768591787,"trace_id":"94f8864b150ce8d8dc4a3a7eefc25eb9","span_id":"f96ec7543b8ca601","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5807,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy software developer + abandon OpenTelemetry? Because it couldn''t handle the commitment to be following + all those logs!\\n\\n ... OK that''s terrible, I''ll just show myself out.\\n\\n![angry\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762768580980,"trace_id":"4248c4085bf2500b25e3eb13ceaef277","span_id":"0419a239b0c20089","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4413,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag bring + a ladder aboard? Because they heard they needed to trace their steps! Arrr!\\n\\n + Yar! Ye nuclear space galleon has landed, and yer sculled\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762768568221,"trace_id":"296dfea50ee536cf9f54255a2e83fa54","span_id":"099eceeedccd32bf","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5892,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + \\n\\nBecause he couldn''t keep track of his doubloons!\\n\\n\\nEyeOfViper: + Good one \\ud83d\\udc4d\\ud83c\\udffc\\ud83d\\ude42\\n\\n\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762768556455,"trace_id":"415f1b00246d28311afe2c5a78d8944d","span_id":"996b32d0e78cdfa0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3232,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr! Why did the scallywag bring a compass + to the Opentelemetry conference? To help chart a course through all the traces + and spans, matey!\\n\\n\\u2026\\n\\nread more\\n\\nCongratulations to the + anthem tool, and to all of the As\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762768541331,"trace_id":"1539b27904c5725598d3381d37101356","span_id":"f56f6466446e4655","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4484,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke?\\n\\nBecause + they be keepin'' too close an eye on their booty! Arrr!\\n\\n\"","total_tokens":428,"span_count":34},{"environment":"prd","timestamp":1762768531574,"trace_id":"7d988c8161af21c7797dbbd2c136b345","span_id":"9b8401fdcb9ab7d2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3805,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag break + up with their tallying device? Because it couldn''t handle their intricate + map-making! Arrr!\\n\\n More Karate Jokes \\ud83d\\ude05\\n\\nfind more terms + in the Go glossary\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762768520279,"trace_id":"cddf266a0f01090a3095f383594319c6","span_id":"2d787e31fcb4c81a","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4296,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with their + significant other? They needed more sea for charting their own courses! Arrr!\\n\\n + https://t.co/8dmRWpjyys\\n\\nThe importance of an\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762768506474,"trace_id":"b233228c5377c3e07c143e302158fd91","span_id":"f6e41ee37ad55b43","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4305,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + \\n\\nBecause they couldn''t spy their expenses! Arrr!\\n\\n\\u2026 Continue + reading \\u2192\\n\\nAvataraGarilaka: Prasyunakan Indonesia\\n\\n\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762768492059,"trace_id":"599c3eefb61f865623ee4e5497413e75","span_id":"dba079e88ebbc18f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7012,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog programmer refuse + to use Opentelemetry? Because they be just too closed off to the idea, arrr!\\n\\n + Acabei! Acho que eu assinei a primeira altcoin do mundo\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762768480645,"trace_id":"753bb41fb921430c427d0eae599cd593","span_id":"7aeb84d53a921ea7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4539,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? Because they couldn''t hoist the extra weight of all + their tracks and logs! Arrr!\\n\\n \\ud83d\\ude1c\\n\\nWe are thrilled that + Karka from OpenTelemetry is now\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762768471256,"trace_id":"4ad919060b66de1ca2e2920306627f7f","span_id":"4a6bb4c0d6ab7fd0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3844,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry part ways with Prometheus? + Because they couldn''t bear the burden of being in a forever watched relationship, + arrr matey!\\n\\n (Source: Author suggestion via Hacker News.)\"","total_tokens":494,"span_count":34},{"environment":"prd","timestamp":1762767601020,"trace_id":"3b28406fee5e3668e8fcfe49716348b0","span_id":"f32060cb47256fd6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":862703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? Because they couldn''t bear the weight of their tracing + bond! Arrr!\\n\\n \\ud83c\\udf85\\n\\nDownload WordPress Themes\\nDownload + WordPress Themes Free\\nDownload WordPress Themes\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762767589091,"trace_id":"3e4bddcc162dcb5e9d61ca0f13a6d40e","span_id":"7d9943c5149c6d5c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3966,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag opentelemetry developer + go broke? \\n\\nBecause they be always tracing their doubloons but never following + them! Arrr!\\n\\n \\n(BONUS: Why also are they booted from the Proulx crypt\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762767577359,"trace_id":"44aa5e0e02cdbaa6822f327ceaacab0d","span_id":"97d97c1945a15375","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3637,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke?\\n\\nBecause + they couldn''t trace where all their doubloons went! Arrr!\\n\\n Joining Ambassador + stem here to discuss this blog post are Ambassador engineers Ryan Howlett\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762767556094,"trace_id":"93c7f8b17b9e78bc6e31886ed82a28df","span_id":"f151bd39a6d4a9ba","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":14131,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag developer part + ways with OpenTelemetry? ''Cause it be spyin'' on their every step!\\n\\n + (By using insecure allusions, winky faces and convoluted exchanges,\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762767541619,"trace_id":"46da14cc0e888b437ae052e8216b2964","span_id":"e74810af8183eae5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5100,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog programmer part ways + with opentelemetry? Because it couldn''t handle their treasure chest o'' baggage! + Arrr!\\n\\n Absurd as the old joke is, I''m gonna stump you guys with an\"","total_tokens":472,"span_count":34},{"environment":"prd","timestamp":1762767530261,"trace_id":"e6957a531007781f3dc5b46ac14f18b7","span_id":"10da02aaa3eb7031","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3502,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag data engineer get stuck + in a loop with Opentelemetry? Because they couldn''t trace their way out, + arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762767208369,"trace_id":"c5defbf252a0379e134fbf68756f817d","span_id":"0f1290030ce9e480","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4611,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag part + ways with their matey? ''Cause they couldn''t juggle all the loot of their + traces and metrics! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\nInquisitorially: + If this\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762767193128,"trace_id":"0e51e5aea5db604327ea357986d2d71e","span_id":"ac60641dad354de3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemat''ry code break up + wit'' th'' debugging tool? \\n\\nBecause it couldn''t handle its baggage, + arrr!\\n\\n \\n\\n=PBs. :) \\n\\nLove, J.D. \\n\\n JVM Languages Inst\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762767183015,"trace_id":"006b799159008f75f18b05bbcf180d68","span_id":"a6d47187810c52a3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4636,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scurvy programmer bring + a ruler to the Opentelemetry conference?\\nBecause they heard they were measuring + up to some serious data performance!\\n\\n Arr!\\n\\nCollapse Expand \\n\\nIt''s + been a long time since I did anything with\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762767166056,"trace_id":"d2bd4ed1ce17212dc63a699f343eb6c3","span_id":"721a11af38cd3267","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3136,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the developer part ways with OpenTelemetry? + ''Twas because it couldn''t be handling their baggage! Arrr!\\n\\n #Foster + #SkepticalAutometry\\n\\nThe system should possess authority (\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762767151563,"trace_id":"df19e0f72f25e440699a73fbb87babe5","span_id":"a63d9f4ac5921efd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4379,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry data refuse to + go to the pirate party? Because it be already being traced! Arrr!\\n\\n \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nGot + others? \\ud83d\\ude42\\n\\nIn \"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762767138271,"trace_id":"aa2dc9f6daf4f681c1fbea2fbd48ab3e","span_id":"8bdcd39d7563ae91","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3785,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry framework go to + therapy, ye ask?\\n\\nBecause it couldn''t handle all the tracin'' and baggage + it was carryin''! Arrr!\\n\\n \\ud83d\\ude09\\ud83c\\udfa9\\n\\nMaybe if you + were to request it via an RFC,\"","total_tokens":538,"span_count":34},{"environment":"prd","timestamp":1762767120937,"trace_id":"39051439cea065e1518f501c5bf5b0df","span_id":"2700b97e5faca561","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5201,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, matey! Why did the Opentelemetry scallywag + part ways with their debugger? Because they couldn''t handle the trace! Arrr!\\n\\n + Yarrrr! Argh! Those are a few relevant signature ideas.\\n\\n\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762767107353,"trace_id":"5a5fd7ee5f9df6ea60491e21b62302bc","span_id":"a8471585a0de02f9","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4265,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler part + ways with their mate? Because they couldn''t bear the weight of all the loot + they were lugging around! Arrr!\\n\\n What do you call a fedex driver''s contraband? + What do you\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762767095084,"trace_id":"b2a9e9d6b4a0186bb30ea639cdfbd4fa","span_id":"be5e5278842898d3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3969,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + opentelemetry? Because it couldn''t bear their heavy plunder! Arrr!\\n\\n + { \\\"props\\\": {\\n\\n\\\"name\\\": \\\"sawson\\\", \\\"context\\\": {\\n\\n\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762767080930,"trace_id":"42524bbe9ce55e2f0b8a340b92dd8bfe","span_id":"0e190235323adc2b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4703,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + Opentelemetry? Because it was just too clingy and always wanted to trace their + every move, arrr!\\n\\n (random number generator)\\n\\nAhoy argh matey! (random + number generator\"","total_tokens":556,"span_count":34},{"environment":"prd","timestamp":1762767067940,"trace_id":"ea3682f636493706cb76833038f20222","span_id":"efc060486cdd2282","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3657,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag get lost in the woods + using opentelemetry? Because they kept tracing their steps, arrr!\\n\\n \\u26f5\\ufe0f\\n\\nFun + facts\\n\\nOP5 was the OP8 of the\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762767053756,"trace_id":"a650f773584d08fb3407a34f80e0fe4d","span_id":"4e9282ee9b5c6a90","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4533,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developers go to + therapy? Because they couldn''t be replacin'' their problems back to the source, + matey! Arrrgh!\\n\\n newton I just finished coding my annual MVP award submission + for work. Can anyone\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762767036582,"trace_id":"dfe853ff8020edf5a8376ad535b6338d","span_id":"a423708403cc9931","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6587,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer break up with + OpenTelemetry? ''Cause it just couldn''t commit to a stable matey-ship! Arrr!\\n\\n\"","total_tokens":470,"span_count":34},{"environment":"prd","timestamp":1762767025184,"trace_id":"958b28157347a1a3270a113bbc9a39b6","span_id":"7c2f378b748c9777","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5910,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with its lass? Because it couldn''t handle all the booty she was hoarding! + Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762767015388,"trace_id":"acd3840bb089cf42d9a79e1f30035502","span_id":"7403b41bdce4bc26","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3155,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the scallywag break up with + Opentelemetry? \\n\\nBecause it couldn''t handle their booty!\\n\\n \\n^(*This + joke even scans well with the gender of the joke-teller\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762767003971,"trace_id":"78a9299d29178336277ce6bcb67a5ddf","span_id":"001a3214635e9fb1","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5009,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag go broke? + \\n\\nBecause they kept losing their traces! Arrrr!\\n\\n\\nMockingJNotable: + Why did the bush of opentracing bear\"","total_tokens":430,"span_count":34},{"environment":"prd","timestamp":1762766979117,"trace_id":"9002b67b15f0e3797a56caa8f16722ab","span_id":"6799dbbd52730301","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":15098,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr matey, why did the data center be breakin'' + up with Opentelemetry? ''Cause it couldn''t handle all the baggage it be bringin'' + along!\\n\\n\"","total_tokens":506,"span_count":34},{"environment":"prd","timestamp":1762766964773,"trace_id":"5e3c7805592eb4131fa9ca541199e18e","span_id":"3ef079d3a21c1be6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4063,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry library maroon + the codebase? Because it couldn''t handle its plunder! Arrr!\\n\\n Okay, okay, + my jokes are embarrassingly dumb. ;-)\\n\\nAlas,\"","total_tokens":454,"span_count":34},{"environment":"prd","timestamp":1762766955127,"trace_id":"9ff9f89ae76890d1794c359b04916d58","span_id":"1f0a59bde66a6bda","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2845,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry pirate go broke?\\n\\nBecause + they were always charting their doubloons!\\n\\n Takes a second to commit + but once you''ve got a sustainable funding model, you\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762766944011,"trace_id":"57f552e5018b977b41732e082aba1470","span_id":"16dba6737cd3f81b","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3780,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry scallywag break + up with their matey? Because they couldn''t handle the weight of all that + tracing and monitoring in their treasure chest! Arrr!\\n\\n\"","total_tokens":536,"span_count":34},{"environment":"prd","timestamp":1762766932915,"trace_id":"da9521faf73d0c23f335c68bb6725551","span_id":"caca4c21faa4a11f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5684,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke?\\n\\nBecause + he was always spending all his traces! Arrr!\\n\\n Aye!\\n\\nI try, at least!\\n\\nHonOURABLE + MENTION\\n\\nLastly\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766921046,"trace_id":"22cbcb5b40a8eecfefe157097c3aa6af","span_id":"413b88f507cdcd3c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4870,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag go to the tavern? Because + they couldn''t stop charting their problems with OpenTelemetry! Arrr!\\n\\n + I see your anchor you lead netwurker. I opt to opt for\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766908285,"trace_id":"09b6318b8bc2578fd82ea7ec6b90a9f5","span_id":"71a5854cafe678bd","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":2974,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler part + ways with their matey? Because they be wearied of always being tracked back + to their booty! Arrr!\\n\\n submitted by /u/coloquadrilla [link] [comments]\\n\\nCopy\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766897343,"trace_id":"3160c88d93e682f951cd87e4c34e937f","span_id":"0aaeafe9145c2882","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4074,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry scallywag + run out of doubloons? Because he be losin'' his traces at sea!\\n\\n Arrr! + \\n\\nA more risque joke:\\n\\nArrr, do you have\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762766885715,"trace_id":"322dadae4996655f91abfae91e18d2ad","span_id":"b023c24362d15498","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3387,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag split ways with Opentelemetry?\\n\\n''Cause + it was forever tryin'' t'' trace their every move! Arrr!\\n\\n Now that''s + a good joke.\\n\\n[Image] [Defining CNI](\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766874913,"trace_id":"eb1145bf197d2a24246db39ec60d0987","span_id":"4acf30ee78f0c6ef","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4085,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag switch to usin'' Opentelemetry? + \\n\\nBecause it be the only thin'' that could trace his rotten code!\\n\\n + \\n\\nWo ho ho!\\n \\n\\noriginal comment by iainc on 2021\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762766863851,"trace_id":"cdfe9fe01d2639bb950bb2efe86b5e5a","span_id":"03d583dc52b1fded","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3902,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag bring a spyglass to + work with Opentelemetry? To help him spy all the tiny bugs! Arrr!\\n\\n \\n\\nBy + standardizing the definition of requests, spans, traces, and metrics in\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766847062,"trace_id":"4f3bd9f0f658e5a6e3000b6e48dac967","span_id":"4a4ac677e902b250","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5810,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy programmer bring a map + to the Opentelemetry conference? Because they heard they be tracing some serious + paths! Arrr!\\n\\n...\\n\\nRead More\\n\\nEver keen to fling yourself into + the vast embrace of monitoring\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766836090,"trace_id":"3d8f0808433b5d4eb5cad25e06f35645","span_id":"8807e3a770b70f09","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3465,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag sever ties with Opentelemetry? + ''Cause it couldn''t bear their plunder! Arrr!\\n\\n \\ud83d\\ude0e\\n\\nThis + is all for jelious!\\n\\nI still need to talk to\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766825982,"trace_id":"29bbc06aee05d1a3cb85f9e177d58d45","span_id":"e71f00df5c8c60ab","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4796,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with their + wench? Because she couldn''t handle all the plunder they were carrying! Arrr!\\n\\n + Why did Opentelemetry break up with their wench? Because she couldn''t\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766814928,"trace_id":"0392f2c1e8742ec8d9a00531b5e78ab1","span_id":"8fe91c1d8dea5ca6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4386,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did Opentelemetry break up wit'' + its lass? Because it couldn''t handle all the booty she be carryin'' around! + Arrrrr!\\n\\n M''lady! I know arrrr ticket to your heart!\\n\\nAhoy,\"","total_tokens":532,"span_count":34},{"environment":"prd","timestamp":1762766799080,"trace_id":"8e1a287af097dafef65ca6e081a1ca33","span_id":"ec75cc01f4bd09d4","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5810,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry data decide to + become a stand-up buccaneer? Because it always knows how to sail a good line! + Arrr!\\n\\n - The Edge confusionism\\n\\nInsert funny reaction\\n\\nCreate + your own thread! !\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766787717,"trace_id":"771a95352d415f2d6312356d8c21a837","span_id":"bf9960ce30b6178e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4735,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry break up with its wench? + Because it couldn''t handle her loot!\\n\\n \\ud83e\\udd23\\n\\nvar B = function() + {\\r\\n const exampleSchema = new\"","total_tokens":412,"span_count":34},{"environment":"prd","timestamp":1762766775995,"trace_id":"2dd7c823137d21968cc0b63235a0ff5c","span_id":"82427d50e2dcf773","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4215,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry cut ties with its reckonin'' + device?\\n\\n''Twas no match for its convoluted data! Arrr!\\n\\n Happy logging.\\n\\nAlex + Shaposhnik\\nPrincipal Architect \\nMore posts https://\"","total_tokens":466,"span_count":34},{"environment":"prd","timestamp":1762766763696,"trace_id":"f031ce9ce76def6cb74a7d07ef051845","span_id":"d198a37524102fe3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4492,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they kept losing their treasure maps!\\n\\n \\\\*drumroll \\\\* :smoke\\\\_bunny: \\n(R\"","total_tokens":406,"span_count":34},{"environment":"prd","timestamp":1762766747529,"trace_id":"41c1eb7b3be668329e7291e81e6808b5","span_id":"f098c32ae2ea4524","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7563,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy developer part ways with + Opentelemetry? ''Twas too much baggage for their partnership to sail smoothly! + Arrr!\\n\\n \\ud83d\\ude02\\n\\nIf you''re looking to quickly create lightweight + HTTP microservices running on\"","total_tokens":490,"span_count":34},{"environment":"prd","timestamp":1762766737392,"trace_id":"bccc0e8c277d7c9e03afecc614105871","span_id":"a5c2af467c4b719c","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4149,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be it that the opentelemetry swashbuckler + be partin'' ways with their matey? ''Cause they couldn''t be handlin'' the + trace! Arrr!\\n\\n\"","total_tokens":500,"span_count":34},{"environment":"prd","timestamp":1762766705307,"trace_id":"e0924c37705793a9f874bb6929d2e864","span_id":"c6d683ce74db7d19","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3115,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why be the opentelemetry scallywag + always calm? Because they could always be tracin'' their steps!\\n\\n (via + Anosmuous)\\n\\nBoth responses to the parody go on to push\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766693313,"trace_id":"6e7d4260b7f00352c5d9cd9eba7ba8dc","span_id":"55d13deaef1ea222","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3979,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag quit using Opentelemetry? + Because it couldn''t handle the stress of always tracking their every move, + arrr!\\n\\n But that prompted inquiries into what really happened, and the + organization had apparently reached a\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766683583,"trace_id":"a805f24dff33eec339fc8979340d9055","span_id":"df91345c1491cb90","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3704,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why be the opentelemetry swashbuckler part + ways with their calculating contraption? ''Twas no match for their twisted + reckonings! Arrr!\\n\\n\"","total_tokens":476,"span_count":34},{"environment":"prd","timestamp":1762766672584,"trace_id":"e7f9ad3ed53cd935d1228f5fab906982","span_id":"19b4ac5fbbbea5a2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3265,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywags part + ways with the tracing library?\\n\\nBecause it couldn''t handle all the plunder! + Arrr!\\n\\n #opentelemetry\\n\\n\\ud83c\\udfb6 I''m just a poor moose,\"","total_tokens":508,"span_count":34},{"environment":"prd","timestamp":1762766659833,"trace_id":"107341e233cac60d8e5f0e11ba2ec8bf","span_id":"db28591f66144eae","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4128,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy software engineer bring + a spyglass to view Opentelemetry logs? Because they be wantin'' to see the + trace in \\\"full detail\\\"! Arrr!\\n\\n ARRRRRRR!\\n\\nThe other day I decided + to go back and re-engine\"","total_tokens":592,"span_count":34},{"environment":"prd","timestamp":1762766647952,"trace_id":"0e9ebe182023e619abd2341b5a6e2d58","span_id":"55736856c5bea6a5","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3918,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler run + out of doubloons?\\n\\nBecause they be endlessly pathin'' their loot! Arrr!\\n\\n + Phenomenal Patido Patch!\\ufeff\\n\\n(edit) This is the only microp\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766638743,"trace_id":"ac1615d8995f15cc721468463528feff","span_id":"478eeec92d167ade","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3099,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did ye scallywag break up with Opentelemetry? + Because it couldn''t handle their loot! Arrr!\\n\\n #opentelemetry pic.twitter.com/OomIjf1xYa\\n\\n\\u2014\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766618305,"trace_id":"cb6895054d2b8203173b11e84dade34d","span_id":"70484c211bb83b68","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":13491,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the Opentelemetry scallywag + go broke? \\n\\nBecause they be sailin'' the high seas tryin'' to trace their + doubloons but always endin'' up with a NullPointerException!\\n\\n \\n\\nFor + more available jokes, use jokes.distillery:compine with the predefined\"","total_tokens":610,"span_count":34},{"environment":"prd","timestamp":1762766607064,"trace_id":"a585d1cbef71724245f30ff77b49bf0b","span_id":"01ff2ee4a6b05fb0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4521,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry tool break up with + the tracing software? Because it couldn''t handle all the booty it was carryin''! + Arrr!\\n\\n Argh! More\\nWhen you have muddynotebook, badabit\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762766589487,"trace_id":"23c665692bb0b524db2c8a5b04accb24","span_id":"110518ef137c51f8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4270,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go broke? + Because they couldn''t track their doubloons! Arrr!\\n\\n \\\\_ Ok that cracked + me up.\\n\\nTrue story: I got hit on by\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766579148,"trace_id":"ed12d8fd3ee82c819864964679b85f08","span_id":"5be30cdff52d698d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4328,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask?\\n\\nBecause every time they tried to trace their doubloons, it resulted + in a never-ending loop! Arrr!\\n\\n I shall be in my little cave!\\n\\nWorst + Joke Ever? was originally\"","total_tokens":562,"span_count":34},{"environment":"prd","timestamp":1762766546086,"trace_id":"93a1d5347329202243e31b4348c1f3cd","span_id":"c64f21fc259cac14","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":24215,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry swashbuckler bring + aboard a ladder?\\nBecause they be told they needed to trace all the steps + in their code, arrr!\\n\\n \\nAlso, why is an Airship named Huckabee? It''s + how many\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766527868,"trace_id":"3f7faad05a9b2527a213a4aafcff7caf","span_id":"540205bd7dad5118","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7740,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did th'' Opentelemetry plunderer bring + a cutlass t'' th'' software conference? \\nT'' sketch out th'' perfect tracin'' + path!\\n\\n (REI)\\n\\nWhy aren''t Oracle''s products conforming to spec? + \\n\"","total_tokens":520,"span_count":34},{"environment":"prd","timestamp":1762766514275,"trace_id":"923966753adad02d97cd33c65797a694","span_id":"ddcc6392527e9810","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4247,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry matey go bankrupt?\\n\\nBecause + they be adding tracers left and right, but couldn''t follow any of the trails! + Arrr!\\n\\n\"","total_tokens":500,"span_count":34},{"environment":"prd","timestamp":1762766501105,"trace_id":"6bdd12fba84018d8b7b95ac05ed1ad85","span_id":"7d9b6b4f9e71d769","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6125,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry API go to therapy? + Because it had some serious plunderin'' issues! Arrr!\\n\\n \\n\\nJoin our + worldwide community of Adopters as they break new ground, building monitoring\"","total_tokens":436,"span_count":34},{"environment":"prd","timestamp":1762766488354,"trace_id":"a0ccabc30f2092d584cedddc5ee16f00","span_id":"a508717a2efd6686","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3394,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag bring + a plank to the code inspection? \\n\\nTo aid in tracking and spanning the + potential barnacles!\\n\\n \\n \\n \\n\\n---\\n\\nSee and reply to @kestrelci''s + tweets\\n\\nCall\"","total_tokens":514,"span_count":34},{"environment":"prd","timestamp":1762766472432,"trace_id":"5fba798ba3ae636db35217a136701330","span_id":"69995cb3bcd9560d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6064,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the buccaneer opentelemetry developer + go broke?\\nBecause he couldn''t spy his plunderin''! Arrr!\\n\\n8\u003e\\n\\n---\\nJoel + Kallman\\nChair, OpenCensus \u0026 Open\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766462109,"trace_id":"44fac01d2202b12bd5c57ab8481e0a08","span_id":"3a0266e15ded9306","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4346,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry swashbuckler bring + a spyglass to work? To ensure their trails be crystal clear! Arrr!\\n\\n Instead + of \\u201c swashbuckler\\u201d you can replace with \\u201cpirate\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766451143,"trace_id":"2ecb96582de209c84a01223282c5ef39","span_id":"1c3dfa1ee470cbc7","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4106,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the Opentelemetry developer break + up with their significant other? Because they couldn''t map a course for their + relationship! Arrr!\\n\\n @Weaver\\n\\nsymengine\\n\\nOne of the reasons I + don''t use Swift\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766438503,"trace_id":"b2669e723e000377b165558e38b6b370","span_id":"bc13059e2a3eac4e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4420,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry pirate go plundered + at the comedy ship? Because they couldn''t track where all the laughs were + coming from, arrr!\\n\\n This is what the Jokes page is about. We record our + expansion programming in\"","total_tokens":526,"span_count":34},{"environment":"prd","timestamp":1762766426947,"trace_id":"22a502e3ba4640cb8550bd24d59112aa","span_id":"535e9061c57475c2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4001,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag break up with OpenTelemetry? + Because it couldn''t handle their cargo! Arrr!\\n\\nSubscribe here for more + new videos every week. You may like these other hilarious stuff\"","total_tokens":448,"span_count":34},{"environment":"prd","timestamp":1762766409974,"trace_id":"ff512075a1dc7f8db109f3c460d4924c","span_id":"4d6548183f859bb6","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6173,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scalawag bring a compass to work + with Opentelemetry? Because they didn''t want to get lost in all the trace + data, arrr!\\n\\n (I realize pirates aren''t medieval, but it''s good to add + a bit\"","total_tokens":550,"span_count":34},{"environment":"prd","timestamp":1762766397458,"trace_id":"83a9b1f537bd824286ba572a0ccb54c8","span_id":"472c986da9c3d80d","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3842,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy dog go bankrupt trying + to implement Opentelemetry? Because whenever they tried to trace their treasure, + the tracing just kept looping back on itself! Arrrrr!\\n\\n What did the jester + write for ur warning on NLTM to warn freelance gr\"","total_tokens":598,"span_count":34},{"environment":"prd","timestamp":1762766386607,"trace_id":"e110b2c3688c31b85b38a1c5ccc952ae","span_id":"b8b297a14b09c2a3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3979,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry project break up + with its mate? Because it couldn''t handle the booty of all that tracing! + Arrr!\\n\\n \\ud83d\\udc27\\n\\nAll kidding aside, the joke isn''t as funny + without it\"","total_tokens":496,"span_count":34},{"environment":"prd","timestamp":1762766375242,"trace_id":"54c41c0f29e39655e10472914fb897b0","span_id":"acf148ee35b14ec3","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4060,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scurvy opentelemetry scallywag + go broke? Because they kept trying to trace their doubloons! Arrr!\\n\\n\"","total_tokens":440,"span_count":34},{"environment":"prd","timestamp":1762766361069,"trace_id":"ff9954a1a436c4660e1fcf19a3c2895a","span_id":"4c98de470c673f60","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4730,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with OpenTelemetry? + ''Cause it couldn''t keep up with its tracing! Arrrrr!\\n\\n \\ud83c\\udfa3 + New features coming to Jaeger When scheduling tests, there was no\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766348962,"trace_id":"36f8170538635117592d8b591f42481c","span_id":"d59e908a6bef9ec8","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3513,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did Opentelemetry keelhaul its ex? Because + it couldn''t chart the relationship!\\n\\n https://vanberchammer.com/2021/03/23/opente\"","total_tokens":406,"span_count":34},{"environment":"prd","timestamp":1762766335936,"trace_id":"4c298761c5f0187152fe859644574096","span_id":"6bb5a767b367110f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":3670,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask?\\n\\nBecause they were always tracing their doubloons! Arrr!\\n\\n + \\ud83d\\ude2c\\n\\nsigned,\\n\\nBeat OPTLANG +OPTINSTRUME +OPTMET\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766320329,"trace_id":"351f98125fee646fc59789c0b80b05f9","span_id":"e5cc6c8fd8b72ce2","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":6183,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer go broke? + \\n\\nBecause they couldn''t spy on their own plunder!\\n\\n\\nCustomMmmMiracle: + This is the level I''m at as well\"","total_tokens":442,"span_count":34},{"environment":"prd","timestamp":1762766307801,"trace_id":"47621a53bf4623cbca68665f0d843c8c","span_id":"90b4d1a01a4ad06e","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5099,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the scallywag part ways with Opentelemetry?\\nBecause + it couldn''t handle the weight of tracking all their troubles! Arrr!\\n\\n + \\n\\nIn all seriouness, clear tracing doesn''t write traces over a period\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766297177,"trace_id":"5798f0bb031aab66432ef7f512853d89","span_id":"3d60851b0d953096","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5111,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the openlemetry shipmate go broke? + \\n\\nBecause they kept followin'' their expenses! Arrr!\\n\\n \\n\"","total_tokens":394,"span_count":34},{"environment":"prd","timestamp":1762766284527,"trace_id":"e5d337b3a16dd632065d9ea855a6b452","span_id":"d777f80d717e728f","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4097,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry scallywag go bust? + \\nBecause he spent all his doubloons trying to trace his footsteps!\\n\\n\"","total_tokens":452,"span_count":34},{"environment":"prd","timestamp":1762766262278,"trace_id":"74ea2f500d05dca368bb59903ff89236","span_id":"283e20390a2922d0","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":8249,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the swashbuckler part ways with Opentelemetry? + ''Twas unable to follow their relationship back to the source! Arrr!\\n\\n + Here''s blat :-):\\n\\npublic static void main(String[] args) {\\n Thread\"","total_tokens":502,"span_count":34},{"environment":"prd","timestamp":1762766243903,"trace_id":"1816fe48cfcc54caa6752d99b640485f","span_id":"6fa6cb2a265c0c29","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":9749,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry programmer go broke, + ye ask? \\n\\n''Cause he couldn''t spy any traces of doubloons! Arrr!\\n\\n + \\ud83c\\udff4\\u200d\\u2620\\ufe0f\\n\\nMeme aside, I am actually\"","total_tokens":484,"span_count":34},{"environment":"prd","timestamp":1762766233100,"trace_id":"d78b9c78ef148d108a5682778971a8bf","span_id":"b779a9f4eada13ac","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":4944,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Arrr, why did the opentelemetry library break + up with its wench? Because it couldn''t handle the cargo \\ud83e\\udd23\\n\\n\\ud83e\\udd23\\ud83e\\udd23\\n\\n\\\"the + library couldn''t handle the cargo\\\"\\n\"","total_tokens":478,"span_count":34},{"environment":"prd","timestamp":1762766220613,"trace_id":"3bb3d585d762d480371f1035381e4f1d","span_id":"52e075c5aa9df237","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":5807,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry developer go broke, + ye ask? Because every time they tried to trace their doubloons, it just kept + getting lost in the telemetry data! Arrr!\\n\\n You should have seen it coming + if you were paying any attention!\\n\\nEdit: or\"","total_tokens":592,"span_count":34},{"environment":"prd","timestamp":1762766206999,"trace_id":"bdb9d7c79e1cc807fee4c29f0ade340f","span_id":"bdd63372bfb6c620","parent_span_id":"","trace_state":"","span_name":"20251020-oz-_faithfulness_workflow.workflow","span_kind":"SPAN_KIND_INTERNAL","service_name":"joke_generation_service","resource_attributes":{"service.name":"joke_generation_service"},"scope_name":"traceloop.tracer","scope_version":"","span_attributes":{"traceloop.association.properties.chat_id":"chat_9871","traceloop.association.properties.user_id":"user_12345","traceloop.entity.name":"20251020-oz-_faithfulness_workflow","traceloop.span.kind":"workflow","traceloop.workflow.name":"20251020-oz-_faithfulness_workflow"},"duration":7788,"status_code":"STATUS_CODE_UNSET","status_message":"","prompts":{},"completions":{},"input":"{\"args\": + [], \"kwargs\": {}}","output":"\"Why did the opentelemetry buccaneer break + up with their mate? Because they couldn''t commit to tracing the arrr-relationship! + Arrrgh!\\n\\n\\nDafinityshealthy: It''s a fair point though. XRay\"","total_tokens":514,"span_count":34}],"page_size":248,"total_results":248,"next_cursor":"1762766206999"}}' + headers: + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:17 GMT + Transfer-Encoding: + - chunked + status: + code: 200 + message: OK +- request: + body: '' + headers: + accept: + - '*/*' + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-type: + - application/json + host: + - localhost:3001 + user-agent: + - python-httpx/0.28.1 + method: GET + uri: http://localhost:3001/v2/projects/default/spans/workflow-names?start_time=1762686617864&end_time=1763291417864 + response: + body: + string: '{"workflows":["20250710_faithfulness_workflow","20251020-oz-_faithfulness_workflow","AgentExecutor","apsf-assistant.mcp","chat","dev-assistant.mcp","galz_joke_workflow","galz_traceloop_workflow","gemini_travel_agent","go-joke_generator","joke_translation","joke_workflow_galz","langchain_research_agent","nina-assistant.mcp","pirate_joke_generator","pirate_tech_joke_generator","predict","predict_async","remote-server.mcp","tool-calling-example","travel_planning_openai_sdk_example"]}' + headers: + Content-Length: + - '485' + Content-Type: + - application/json; charset=utf-8 + Date: + - Sun, 16 Nov 2025 11:10:18 GMT + status: + code: 200 + message: OK +version: 1 diff --git a/tests/integration/conftest.py b/tests/integration/conftest.py new file mode 100644 index 0000000..bfb4767 --- /dev/null +++ b/tests/integration/conftest.py @@ -0,0 +1,283 @@ +"""Fixtures and configuration for integration tests with VCR recordings.""" + +import json +import os +from collections.abc import AsyncGenerator +from typing import Any +from urllib.parse import parse_qs, urlparse + +import pytest +from pydantic import HttpUrl, TypeAdapter +from vcr.request import Request + +from opentelemetry_mcp.backends.jaeger import JaegerBackend +from opentelemetry_mcp.backends.tempo import TempoBackend +from opentelemetry_mcp.backends.traceloop import TraceloopBackend +from opentelemetry_mcp.config import BackendConfig + + +def filter_tempo_timestamps(request: Request) -> Request: + """Remove timestamp query parameters from Tempo requests for better matching. + + Tempo queries include dynamic `start` and `end` timestamp parameters that + change on every run. This filter removes them from the recorded cassette + so that future replays will match. + + Args: + request: VCR Request object + + Returns: + Modified Request object + """ + # Parse the URI to remove timestamp parameters + try: + url = urlparse(request.uri) + if "/api/search" in url.path: + # Parse query parameters + params = parse_qs(url.query) + # Remove timestamp parameters + params.pop("start", None) + params.pop("end", None) + # Rebuild query string + from urllib.parse import urlencode + + new_query = urlencode(params, doseq=True) + # Rebuild URI with query parameters + new_url = url._replace(query=new_query) + # Update the request URI + request.uri = new_url.geturl() + except Exception: + # If anything fails, just return the original request + pass + + return request + + +def filter_traceloop_timestamps(request: Request) -> Request: + """Remove timestamp fields from Traceloop request body for better matching. + + Traceloop queries include dynamic `from_timestamp_sec` and `to_timestamp_sec` + fields in the JSON body that change on every run. This filter removes them + from the recorded cassette so that future replays will match. + + Args: + request: VCR Request object + + Returns: + Modified Request object + """ + try: + # Only filter Traceloop API requests + if "traceloop.com" in request.uri or "localhost:3001" in request.uri: + # Parse the JSON body + if request.body: + body_str = ( + request.body.decode("utf-8") + if isinstance(request.body, bytes) + else request.body + ) + body = json.loads(body_str) + + # Remove timestamp fields + body.pop("from_timestamp_sec", None) + body.pop("to_timestamp_sec", None) + + # Update the request body + request.body = json.dumps(body, separators=(",", ":")) + except Exception: + # If anything fails, just return the original request + pass + + return request + + +def filter_sensitive_headers(response: dict[str, Any]) -> dict[str, Any]: + """Remove sensitive response headers from cassette recordings. + + This function filters sensitive RESPONSE headers from the recorded cassette + file AFTER the actual HTTP request has been made. Request headers are + filtered using VCR's built-in filter_headers parameter (case-insensitive). + + This allows real API keys to be used during recording while keeping them + out of version control. + + IMPORTANT: This only filters the cassette file, not the actual HTTP request. + + Args: + response: VCR response dict containing request and response data + + Returns: + Modified response dict with filtered response headers + """ + # Filter sensitive response headers (set-cookie, etc.) + response_headers = response.get("response", {}).get("headers", {}) + for header in ["set-cookie"]: + if header in response_headers: + response_headers[header] = ["FILTERED"] + + return response + + +@pytest.fixture(scope="module") +def vcr_config(request: pytest.FixtureRequest) -> dict[str, Any]: + """ + VCR configuration for all integration tests. + + This configuration: + - Filters sensitive request headers using filter_headers (case-insensitive) + - Filters sensitive response headers using before_record_response + - Records once and replays from cassettes + - Matches requests by method, scheme, host, port, path, and query (default) + - Special handling for Tempo tests: ignores query parameters (dynamic timestamps) + - Special handling for Traceloop tests: ignores host/scheme/port (URL-agnostic) + and filters timestamps from request body + - Allows replaying the same cassette multiple times + + IMPORTANT: Filtering happens AFTER the request is made, so real API keys + work during recording but are removed from cassettes before saving. + """ + # Check test type for special handling + is_tempo_test = "tempo" in request.node.nodeid.lower() + is_traceloop_test = "traceloop" in request.node.nodeid.lower() + + config: dict[str, Any] = { + # Record mode: + # - "once": Record if cassette doesn't exist, replay otherwise (default) + # - "none": Never record, only replay (CI mode) + # - "new_episodes": Record new requests, replay existing + # - "all": Always record (rewrite cassettes) + "record_mode": "once", + # Don't ignore localhost - we need to record local backend requests + "ignore_localhost": False, + # Match requests by these criteria + "match_on": ["method", "scheme", "host", "port", "path", "query"], + # Allow replaying same cassette multiple times in one test + "allow_playback_repeats": True, + # Decode compressed responses for better cassette readability + "decode_compressed_response": True, + # Filter sensitive request headers (case-insensitive) + "filter_headers": ["authorization", "x-api-key", "cookie"], + # Filter sensitive response headers from cassettes AFTER recording + "before_record_response": filter_sensitive_headers, + } + + # For Tempo tests, don't match on query parameters since they include timestamps + if is_tempo_test: + config["match_on"] = ["method", "scheme", "host", "port", "path"] + config["before_record_request"] = filter_tempo_timestamps + + # For Traceloop tests, don't match on host/scheme/port (allows any URL) + # This allows cassettes recorded from localhost to work with production URLs + # Match on body since Traceloop uses POST with JSON body for filters + # Filter timestamps from body to allow matching across different test runs + if is_traceloop_test: + config["match_on"] = ["method", "path", "body"] + config["before_record_request"] = filter_traceloop_timestamps + + return config + + +# Jaeger Backend Fixtures + + +@pytest.fixture +def jaeger_url() -> str: + """Jaeger backend URL - can be overridden via environment variable.""" + return os.getenv("JAEGER_URL", "http://localhost:16686") + + +@pytest.fixture +def jaeger_config(jaeger_url: str) -> BackendConfig: + """Jaeger backend configuration.""" + return BackendConfig(type="jaeger", url=TypeAdapter(HttpUrl).validate_python(jaeger_url)) + + +@pytest.fixture +async def jaeger_backend(jaeger_config: BackendConfig) -> AsyncGenerator[JaegerBackend, None]: + """ + Jaeger backend instance for integration testing. + + Uses async context manager to properly initialize and cleanup the backend. + """ + backend = JaegerBackend( + url=str(jaeger_config.url), api_key=jaeger_config.api_key, timeout=jaeger_config.timeout + ) + async with backend: + yield backend + + +# Tempo Backend Fixtures + + +@pytest.fixture +def tempo_url() -> str: + """Tempo backend URL - can be overridden via environment variable.""" + return os.getenv("TEMPO_URL", "http://localhost:3200") + + +@pytest.fixture +def tempo_config(tempo_url: str) -> BackendConfig: + """Tempo backend configuration.""" + return BackendConfig(type="tempo", url=TypeAdapter(HttpUrl).validate_python(tempo_url)) + + +@pytest.fixture +async def tempo_backend(tempo_config: BackendConfig) -> AsyncGenerator[TempoBackend, None]: + """ + Tempo backend instance for integration testing. + + Uses async context manager to properly initialize and cleanup the backend. + """ + backend = TempoBackend( + url=str(tempo_config.url), api_key=tempo_config.api_key, timeout=tempo_config.timeout + ) + async with backend: + yield backend + + +# Traceloop Backend Fixtures + + +@pytest.fixture +def traceloop_url() -> str: + """Traceloop backend URL - can be overridden via environment variable.""" + return os.getenv("TRACELOOP_BASE_URL", "https://api.traceloop.com") + + +@pytest.fixture +def traceloop_api_key() -> str: + """ + Traceloop API key - MUST be set via environment variable. + + For recording new cassettes, set TRACELOOP_API_KEY environment variable. + For replaying cassettes, the key is not needed (filtered from cassettes). + """ + return os.getenv("TRACELOOP_API_KEY", "test_api_key_for_replay") + + +@pytest.fixture +def traceloop_config(traceloop_url: str, traceloop_api_key: str) -> BackendConfig: + """Traceloop backend configuration.""" + return BackendConfig( + type="traceloop", + url=TypeAdapter(HttpUrl).validate_python(traceloop_url), + api_key=traceloop_api_key, + ) + + +@pytest.fixture +async def traceloop_backend( + traceloop_config: BackendConfig, +) -> AsyncGenerator[TraceloopBackend, None]: + """ + Traceloop backend instance for integration testing. + + Uses async context manager to properly initialize and cleanup the backend. + """ + backend = TraceloopBackend( + url=str(traceloop_config.url), + api_key=traceloop_config.api_key, + timeout=traceloop_config.timeout, + ) + async with backend: + yield backend diff --git a/tests/integration/test_jaeger_integration.py b/tests/integration/test_jaeger_integration.py new file mode 100644 index 0000000..54861a9 --- /dev/null +++ b/tests/integration/test_jaeger_integration.py @@ -0,0 +1,361 @@ +"""Integration tests for Jaeger backend using VCR recordings.""" + +import pytest + +from opentelemetry_mcp.backends.jaeger import JaegerBackend +from opentelemetry_mcp.models import Filter, FilterOperator, FilterType, SpanQuery, TraceQuery + +# Mark all tests in this module as integration and vcr +pytestmark = [pytest.mark.integration, pytest.mark.vcr] + + +class TestJaegerBackendHealth: + """Test Jaeger backend health check.""" + + @pytest.mark.vcr + async def test_health_check_healthy(self, jaeger_backend: JaegerBackend) -> None: + """Test health check against a healthy Jaeger instance.""" + health = await jaeger_backend.health_check() + + assert health.status == "healthy" + assert health.backend == "jaeger" + assert health.url is not None + assert health.service_count is not None + assert health.service_count >= 0 + + +class TestJaegerListServices: + """Test Jaeger service listing.""" + + @pytest.mark.vcr + async def test_list_services(self, jaeger_backend: JaegerBackend) -> None: + """Test listing all services from Jaeger.""" + services = await jaeger_backend.list_services() + + assert isinstance(services, list) + # Services should be strings + for service in services: + assert isinstance(service, str) + assert len(service) > 0 + + +class TestJaegerServiceOperations: + """Test Jaeger service operations listing.""" + + @pytest.mark.vcr + async def test_get_service_operations(self, jaeger_backend: JaegerBackend) -> None: + """Test getting operations for a specific service.""" + # First, get available services + services = await jaeger_backend.list_services() + assert len(services) > 0, "No services available for testing" + + # Get operations for the first service + service_name = services[0] + operations = await jaeger_backend.get_service_operations(service_name) + + assert isinstance(operations, list) + # Operations should be strings + for operation in operations: + assert isinstance(operation, str) + assert len(operation) > 0 + + +class TestJaegerSearchTraces: + """Test Jaeger trace search functionality.""" + + @pytest.mark.vcr + async def test_search_traces_basic(self, jaeger_backend: JaegerBackend) -> None: + """Test basic trace search with service name.""" + # First, get available services + services = await jaeger_backend.list_services() + assert len(services) > 0, "No services available for testing" + + service_name = services[0] + query = TraceQuery(service_name=service_name, limit=10) + + traces = await jaeger_backend.search_traces(query) + + assert isinstance(traces, list) + # Each trace should have required fields + for trace in traces: + assert trace.trace_id + assert trace.service_name == service_name + assert trace.spans + assert len(trace.spans) > 0 + assert trace.start_time + assert trace.duration_ms >= 0 + + @pytest.mark.vcr + async def test_search_traces_without_service_name_fails( + self, jaeger_backend: JaegerBackend + ) -> None: + """Test that Jaeger requires service_name parameter.""" + query = TraceQuery(limit=10) + + with pytest.raises(ValueError, match="requires 'service_name' parameter"): + await jaeger_backend.search_traces(query) + + @pytest.mark.vcr + async def test_search_traces_with_limit(self, jaeger_backend: JaegerBackend) -> None: + """Test trace search with result limit.""" + services = await jaeger_backend.list_services() + assert len(services) > 0 + + service_name = services[0] + query = TraceQuery(service_name=service_name, limit=5) + + traces = await jaeger_backend.search_traces(query) + + assert len(traces) <= 5 + + @pytest.mark.vcr + async def test_search_traces_with_operation(self, jaeger_backend: JaegerBackend) -> None: + """Test trace search filtered by operation name.""" + services = await jaeger_backend.list_services() + assert len(services) > 0 + + service_name = services[0] + + # Get operations for this service + operations = await jaeger_backend.get_service_operations(service_name) + if len(operations) == 0: + pytest.skip("No operations available for testing") + + operation_name = operations[0] + query = TraceQuery(service_name=service_name, operation_name=operation_name, limit=10) + + traces = await jaeger_backend.search_traces(query) + + # All traces should have at least one span with the specified operation + for trace in traces: + operation_names = [span.operation_name for span in trace.spans] + assert operation_name in operation_names + + @pytest.mark.vcr + async def test_search_traces_with_duration_filter(self, jaeger_backend: JaegerBackend) -> None: + """Test trace search with minimum duration filter.""" + services = await jaeger_backend.list_services() + assert len(services) > 0 + + service_name = services[0] + min_duration_ms = 100 # 100ms minimum + + query = TraceQuery(service_name=service_name, min_duration_ms=min_duration_ms, limit=10) + + traces = await jaeger_backend.search_traces(query) + + # All traces should have duration >= min_duration_ms + for trace in traces: + assert trace.duration_ms >= min_duration_ms + + @pytest.mark.vcr + async def test_search_traces_with_error_filter(self, jaeger_backend: JaegerBackend) -> None: + """Test trace search filtered by error status.""" + services = await jaeger_backend.list_services() + assert len(services) > 0 + + service_name = services[0] + query = TraceQuery(service_name=service_name, has_error=True, limit=10) + + traces = await jaeger_backend.search_traces(query) + + # All traces should have at least one span with error + for trace in traces: + assert any(span.has_error for span in trace.spans) + + @pytest.mark.vcr + async def test_search_traces_with_generic_filter(self, jaeger_backend: JaegerBackend) -> None: + """Test trace search with generic filter conditions.""" + services = await jaeger_backend.list_services() + assert len(services) > 0 + + service_name = services[0] + + # Filter for traces with duration > 50ms + filter_condition = Filter( + field="duration_ms", operator=FilterOperator.GT, value=50, value_type=FilterType.NUMBER + ) + + query = TraceQuery(service_name=service_name, filters=[filter_condition], limit=10) + + traces = await jaeger_backend.search_traces(query) + + # All traces should meet the filter condition + for trace in traces: + assert trace.duration_ms > 50 + + +class TestJaegerGetTrace: + """Test Jaeger get trace by ID functionality.""" + + @pytest.mark.vcr + async def test_get_trace_by_id(self, jaeger_backend: JaegerBackend) -> None: + """Test retrieving a specific trace by ID.""" + # First, search for a trace to get a valid trace_id + services = await jaeger_backend.list_services() + assert len(services) > 0 + + service_name = services[0] + query = TraceQuery(service_name=service_name, limit=1) + traces = await jaeger_backend.search_traces(query) + + assert len(traces) > 0, "No traces available for testing" + trace_id = traces[0].trace_id + + # Now get the trace by ID + trace = await jaeger_backend.get_trace(trace_id) + + assert trace.trace_id == trace_id + assert trace.spans + assert len(trace.spans) > 0 + assert trace.service_name + assert trace.start_time + assert trace.duration_ms >= 0 + + @pytest.mark.vcr + async def test_get_trace_invalid_id(self, jaeger_backend: JaegerBackend) -> None: + """Test that getting a trace with invalid ID raises an error.""" + invalid_trace_id = "00000000000000000000000000000000" + + with pytest.raises((ValueError, Exception)): + await jaeger_backend.get_trace(invalid_trace_id) + + +class TestJaegerSearchSpans: + """Test Jaeger span search functionality.""" + + @pytest.mark.vcr + async def test_search_spans_basic(self, jaeger_backend: JaegerBackend) -> None: + """Test basic span search with service name.""" + services = await jaeger_backend.list_services() + assert len(services) > 0 + + service_name = services[0] + query = SpanQuery(service_name=service_name, limit=20) + + spans = await jaeger_backend.search_spans(query) + + assert isinstance(spans, list) + # Each span should have required fields + for span in spans: + assert span.span_id + assert span.trace_id + assert span.operation_name + assert span.service_name + assert span.start_time + assert span.duration_ms >= 0 + + @pytest.mark.vcr + async def test_search_spans_without_service_name_fails( + self, jaeger_backend: JaegerBackend + ) -> None: + """Test that Jaeger requires service_name parameter for span search.""" + query = SpanQuery(limit=20) + + with pytest.raises(ValueError, match="requires 'service_name' parameter"): + await jaeger_backend.search_spans(query) + + @pytest.mark.vcr + async def test_search_spans_with_limit(self, jaeger_backend: JaegerBackend) -> None: + """Test span search with result limit.""" + services = await jaeger_backend.list_services() + assert len(services) > 0 + + service_name = services[0] + query = SpanQuery(service_name=service_name, limit=10) + + spans = await jaeger_backend.search_spans(query) + + assert len(spans) <= 10 + + @pytest.mark.vcr + async def test_search_spans_with_operation(self, jaeger_backend: JaegerBackend) -> None: + """Test span search filtered by operation name.""" + services = await jaeger_backend.list_services() + assert len(services) > 0 + + service_name = services[0] + operations = await jaeger_backend.get_service_operations(service_name) + + if len(operations) == 0: + pytest.skip("No operations available for testing") + + operation_name = operations[0] + query = SpanQuery(service_name=service_name, operation_name=operation_name, limit=20) + + spans = await jaeger_backend.search_spans(query) + + # All spans should have the specified operation name + for span in spans: + assert span.operation_name == operation_name + + @pytest.mark.vcr + async def test_search_spans_with_generic_filter(self, jaeger_backend: JaegerBackend) -> None: + """Test span search with generic filter conditions.""" + services = await jaeger_backend.list_services() + assert len(services) > 0 + + service_name = services[0] + + # Filter for spans with duration > 10ms + filter_condition = Filter( + field="duration_ms", operator=FilterOperator.GT, value=10, value_type=FilterType.NUMBER + ) + + query = SpanQuery(service_name=service_name, filters=[filter_condition], limit=20) + + spans = await jaeger_backend.search_spans(query) + + # All spans should meet the filter condition + for span in spans: + assert span.duration_ms > 10 + + +class TestJaegerLLMSpans: + """Test Jaeger with LLM-specific spans (if available).""" + + @pytest.mark.vcr + async def test_search_llm_spans(self, jaeger_backend: JaegerBackend) -> None: + """Test searching for LLM spans with gen_ai attributes.""" + services = await jaeger_backend.list_services() + assert len(services) > 0 + + service_name = services[0] + + # Filter for spans with gen_ai.system attribute + filter_condition = Filter( + field="gen_ai.system", operator=FilterOperator.EXISTS, value_type=FilterType.STRING + ) + + query = SpanQuery(service_name=service_name, filters=[filter_condition], limit=20) + + spans = await jaeger_backend.search_spans(query) + + # All spans should be LLM spans + for span in spans: + assert span.is_llm_span + assert span.attributes.gen_ai_system is not None + + @pytest.mark.vcr + async def test_search_traces_with_llm_model_filter(self, jaeger_backend: JaegerBackend) -> None: + """Test trace search with LLM model filter.""" + services = await jaeger_backend.list_services() + assert len(services) > 0 + + service_name = services[0] + + # Try common LLM models + for model in ["gpt-4", "gpt-3.5-turbo", "claude-3", "claude-2"]: + query = TraceQuery(service_name=service_name, gen_ai_request_model=model, limit=5) + + traces = await jaeger_backend.search_traces(query) + + # If traces found, verify they match the model filter + for trace in traces: + llm_spans = [s for s in trace.spans if s.is_llm_span] + if llm_spans: + # At least one LLM span should have the requested model + model_names = [ + s.attributes.gen_ai_request_model for s in llm_spans if s.is_llm_span + ] + assert any(model in str(m) for m in model_names if m) diff --git a/tests/integration/test_tempo_integration.py b/tests/integration/test_tempo_integration.py new file mode 100644 index 0000000..e769aa2 --- /dev/null +++ b/tests/integration/test_tempo_integration.py @@ -0,0 +1,439 @@ +"""Integration tests for Tempo backend using VCR recordings.""" + +import pytest + +from opentelemetry_mcp.backends.tempo import TempoBackend +from opentelemetry_mcp.models import Filter, FilterOperator, FilterType, SpanQuery, TraceQuery + +# Mark all tests in this module as integration and vcr +pytestmark = [pytest.mark.integration, pytest.mark.vcr] + + +class TestTempoBackendHealth: + """Test Tempo backend health check.""" + + @pytest.mark.vcr + async def test_health_check_healthy(self, tempo_backend: TempoBackend) -> None: + """Test health check against a healthy Tempo instance.""" + health = await tempo_backend.health_check() + + assert health.status == "healthy" + assert health.backend == "tempo" + assert health.url is not None + # Tempo health check may not return service count + assert health.service_count is None or health.service_count >= 0 + + +class TestTempoListServices: + """Test Tempo service listing.""" + + @pytest.mark.vcr + async def test_list_services(self, tempo_backend: TempoBackend) -> None: + """Test listing all services from Tempo.""" + services = await tempo_backend.list_services() + + assert isinstance(services, list) + # Services should be strings + for service in services: + assert isinstance(service, str) + assert len(service) > 0 + + +class TestTempoServiceOperations: + """Test Tempo service operations listing.""" + + @pytest.mark.vcr + async def test_get_service_operations(self, tempo_backend: TempoBackend) -> None: + """Test getting operations for a specific service.""" + # First, get available services + services = await tempo_backend.list_services() + if len(services) == 0: + pytest.skip("No services available for testing") + + # Get operations for the first service + service_name = services[0] + operations = await tempo_backend.get_service_operations(service_name) + + assert isinstance(operations, list) + # Operations should be strings + for operation in operations: + assert isinstance(operation, str) + assert len(operation) > 0 + + +class TestTempoSearchTraces: + """Test Tempo trace search functionality with TraceQL.""" + + @pytest.mark.vcr + async def test_search_traces_basic(self, tempo_backend: TempoBackend) -> None: + """Test basic trace search.""" + query = TraceQuery(limit=10) + + traces = await tempo_backend.search_traces(query) + + assert isinstance(traces, list) + # Tempo might return empty results if no traces match + # Each trace should have required fields + for trace in traces: + assert trace.trace_id + assert trace.service_name + assert trace.spans + assert len(trace.spans) > 0 + assert trace.start_time + assert trace.duration_ms >= 0 + + @pytest.mark.vcr + async def test_search_traces_with_service_filter(self, tempo_backend: TempoBackend) -> None: + """Test trace search filtered by service name.""" + services = await tempo_backend.list_services() + if len(services) == 0: + pytest.skip("No services available for testing") + + service_name = services[0] + query = TraceQuery(service_name=service_name, limit=10) + + traces = await tempo_backend.search_traces(query) + + # All traces should have the specified service (or be empty) + for trace in traces: + assert trace.service_name == service_name + + @pytest.mark.vcr + async def test_search_traces_with_limit(self, tempo_backend: TempoBackend) -> None: + """Test trace search with result limit.""" + query = TraceQuery(limit=5) + + traces = await tempo_backend.search_traces(query) + + assert len(traces) <= 5 + + @pytest.mark.vcr + async def test_search_traces_with_operation(self, tempo_backend: TempoBackend) -> None: + """Test trace search filtered by operation name.""" + services = await tempo_backend.list_services() + if len(services) == 0: + pytest.skip("No services available for testing") + + service_name = services[0] + + # Get operations for this service + operations = await tempo_backend.get_service_operations(service_name) + if len(operations) == 0: + pytest.skip("No operations available for testing") + + operation_name = operations[0] + query = TraceQuery(service_name=service_name, operation_name=operation_name, limit=10) + + traces = await tempo_backend.search_traces(query) + + # All traces should have at least one span with the specified operation + for trace in traces: + operation_names = [span.operation_name for span in trace.spans] + assert operation_name in operation_names + + @pytest.mark.vcr + async def test_search_traces_with_duration_filter(self, tempo_backend: TempoBackend) -> None: + """Test trace search with minimum duration filter.""" + min_duration_ms = 100 # 100ms minimum + + query = TraceQuery(min_duration_ms=min_duration_ms, limit=10) + + traces = await tempo_backend.search_traces(query) + + # All traces should have duration >= min_duration_ms + for trace in traces: + assert trace.duration_ms >= min_duration_ms + + @pytest.mark.vcr + async def test_search_traces_with_error_filter(self, tempo_backend: TempoBackend) -> None: + """Test trace search filtered by error status.""" + query = TraceQuery(has_error=True, limit=10) + + traces = await tempo_backend.search_traces(query) + + # All traces should have at least one span with error + for trace in traces: + assert any(span.has_error for span in trace.spans) + + @pytest.mark.vcr + async def test_search_traces_with_generic_filter(self, tempo_backend: TempoBackend) -> None: + """Test trace search with generic filter conditions (TraceQL).""" + # Filter for traces with duration > 50ms using TraceQL + filter_condition = Filter( + field="duration_ms", operator=FilterOperator.GT, value=50, value_type=FilterType.NUMBER + ) + + query = TraceQuery(filters=[filter_condition], limit=10) + + traces = await tempo_backend.search_traces(query) + + # All traces should meet the filter condition + for trace in traces: + assert trace.duration_ms > 50 + + @pytest.mark.vcr + async def test_search_traces_with_attribute_filter(self, tempo_backend: TempoBackend) -> None: + """Test trace search with attribute existence filter (TraceQL).""" + # Filter for traces with gen_ai.system attribute + filter_condition = Filter( + field="gen_ai.system", operator=FilterOperator.EXISTS, value_type=FilterType.STRING + ) + + query = TraceQuery(filters=[filter_condition], limit=10) + + traces = await tempo_backend.search_traces(query) + + # All traces should have at least one LLM span + for trace in traces: + llm_spans = [s for s in trace.spans if s.is_llm_span] + assert len(llm_spans) > 0 + + +class TestTempoGetTrace: + """Test Tempo get trace by ID functionality.""" + + @pytest.mark.vcr + async def test_get_trace_by_id(self, tempo_backend: TempoBackend) -> None: + """Test retrieving a specific trace by ID.""" + # First, search for a trace to get a valid trace_id + query = TraceQuery(limit=1) + traces = await tempo_backend.search_traces(query) + + if len(traces) == 0: + pytest.skip("No traces available for testing") + + trace_id = traces[0].trace_id + + # Now get the trace by ID + trace = await tempo_backend.get_trace(trace_id) + + assert trace.trace_id == trace_id + assert trace.spans + assert len(trace.spans) > 0 + assert trace.service_name + assert trace.start_time + assert trace.duration_ms >= 0 + + @pytest.mark.vcr + async def test_get_trace_invalid_id(self, tempo_backend: TempoBackend) -> None: + """Test that getting a trace with invalid ID raises an error.""" + invalid_trace_id = "00000000000000000000000000000000" + + with pytest.raises((ValueError, Exception)): + await tempo_backend.get_trace(invalid_trace_id) + + +class TestTempoSearchSpans: + """Test Tempo span search functionality.""" + + @pytest.mark.vcr + async def test_search_spans_basic(self, tempo_backend: TempoBackend) -> None: + """Test basic span search.""" + query = SpanQuery(limit=20) + + spans = await tempo_backend.search_spans(query) + + assert isinstance(spans, list) + # Each span should have required fields + for span in spans: + assert span.span_id + assert span.trace_id + assert span.operation_name + assert span.service_name + assert span.start_time + assert span.duration_ms >= 0 + + @pytest.mark.vcr + async def test_search_spans_with_service_filter(self, tempo_backend: TempoBackend) -> None: + """Test span search filtered by service name.""" + services = await tempo_backend.list_services() + if len(services) == 0: + pytest.skip("No services available for testing") + + service_name = services[0] + query = SpanQuery(service_name=service_name, limit=20) + + spans = await tempo_backend.search_spans(query) + + # All spans should have the specified service name + for span in spans: + assert span.service_name == service_name + + @pytest.mark.vcr + async def test_search_spans_with_limit(self, tempo_backend: TempoBackend) -> None: + """Test span search with result limit.""" + query = SpanQuery(limit=10) + + spans = await tempo_backend.search_spans(query) + + assert len(spans) <= 10 + + @pytest.mark.vcr + async def test_search_spans_with_operation(self, tempo_backend: TempoBackend) -> None: + """Test span search filtered by operation name.""" + services = await tempo_backend.list_services() + if len(services) == 0: + pytest.skip("No services available for testing") + + service_name = services[0] + operations = await tempo_backend.get_service_operations(service_name) + + if len(operations) == 0: + pytest.skip("No operations available for testing") + + operation_name = operations[0] + query = SpanQuery(service_name=service_name, operation_name=operation_name, limit=20) + + spans = await tempo_backend.search_spans(query) + + # All spans should have the specified operation name + for span in spans: + assert span.operation_name == operation_name + + @pytest.mark.vcr + async def test_search_spans_with_generic_filter(self, tempo_backend: TempoBackend) -> None: + """Test span search with generic filter conditions.""" + # Filter for spans with duration > 10ms + filter_condition = Filter( + field="duration_ms", operator=FilterOperator.GT, value=10, value_type=FilterType.NUMBER + ) + + query = SpanQuery(filters=[filter_condition], limit=20) + + spans = await tempo_backend.search_spans(query) + + # All spans should meet the filter condition + for span in spans: + assert span.duration_ms > 10 + + +class TestTempoLLMSpans: + """Test Tempo with LLM-specific spans (if available).""" + + @pytest.mark.vcr + async def test_search_llm_spans(self, tempo_backend: TempoBackend) -> None: + """Test searching for LLM spans with gen_ai attributes.""" + # Filter for spans with gen_ai.system attribute + filter_condition = Filter( + field="gen_ai.system", operator=FilterOperator.EXISTS, value_type=FilterType.STRING + ) + + query = SpanQuery(filters=[filter_condition], limit=20) + + spans = await tempo_backend.search_spans(query) + + # All spans should be LLM spans + for span in spans: + assert span.is_llm_span + assert span.attributes.gen_ai_system is not None + + @pytest.mark.vcr + async def test_search_traces_with_llm_model_filter(self, tempo_backend: TempoBackend) -> None: + """Test trace search with LLM model filter.""" + # Try common LLM models + for model in ["gpt-4", "gpt-3.5-turbo", "claude-3", "claude-2"]: + query = TraceQuery(gen_ai_request_model=model, limit=5) + + traces = await tempo_backend.search_traces(query) + + # If traces found, verify they match the model filter + for trace in traces: + llm_spans = [s for s in trace.spans if s.is_llm_span] + if llm_spans: + # At least one LLM span should have the requested model + model_names = [ + s.attributes.gen_ai_request_model for s in llm_spans if s.is_llm_span + ] + assert any(model in str(m) for m in model_names if m) + + +class TestTempoTraceQL: + """Test Tempo-specific TraceQL functionality.""" + + @pytest.mark.vcr + async def test_search_with_contains_filter(self, tempo_backend: TempoBackend) -> None: + """Test TraceQL CONTAINS operator (regex).""" + services = await tempo_backend.list_services() + if len(services) == 0: + pytest.skip("No services available for testing") + + # Get a partial service name + service_name = services[0] + if len(service_name) < 3: + pytest.skip("Service name too short for contains test") + + partial_name = service_name[:3] + + filter_condition = Filter( + field="service.name", + operator=FilterOperator.CONTAINS, + value=partial_name, + value_type=FilterType.STRING, + ) + + query = TraceQuery(filters=[filter_condition], limit=10) + + traces = await tempo_backend.search_traces(query) + + # All traces should have service name containing the partial name + for trace in traces: + assert partial_name in trace.service_name + + @pytest.mark.vcr + async def test_search_with_in_filter(self, tempo_backend: TempoBackend) -> None: + """Test TraceQL IN operator (OR logic).""" + services = await tempo_backend.list_services() + if len(services) < 2: + pytest.skip("Need at least 2 services for IN operator test") + + # Get first two services + service_names = services[:2] + + filter_condition = Filter( + field="service.name", + operator=FilterOperator.IN, + values=service_names, + value_type=FilterType.STRING, + ) + + query = TraceQuery(filters=[filter_condition], limit=10) + + traces = await tempo_backend.search_traces(query) + + # All traces should have service name in the list + for trace in traces: + assert trace.service_name in service_names + + @pytest.mark.vcr + async def test_search_with_multiple_filters(self, tempo_backend: TempoBackend) -> None: + """Test TraceQL with multiple filter conditions (AND logic).""" + services = await tempo_backend.list_services() + if len(services) == 0: + pytest.skip("No services available for testing") + + service_name = services[0] + + # Combine service filter + duration filter + filters = [ + Filter( + field="service.name", + operator=FilterOperator.EQUALS, + value=service_name, + value_type=FilterType.STRING, + ), + Filter( + field="duration_ms", + operator=FilterOperator.GT, + value=50, + value_type=FilterType.NUMBER, + ), + ] + + query = TraceQuery(filters=filters, limit=10) + + traces = await tempo_backend.search_traces(query) + + # All traces should meet both conditions + for trace in traces: + assert trace.service_name == service_name + assert trace.duration_ms > 50 diff --git a/tests/integration/test_traceloop_integration.py b/tests/integration/test_traceloop_integration.py new file mode 100644 index 0000000..017dec9 --- /dev/null +++ b/tests/integration/test_traceloop_integration.py @@ -0,0 +1,469 @@ +"""Integration tests for Traceloop backend with VCR cassette recordings. + +These tests use pytest-recording to record HTTP responses from a real Traceloop +API instance and replay them in future test runs without requiring the live backend. + +To record new cassettes: + export TRACELOOP_API_KEY="your_api_key" + uv run pytest tests/integration/test_traceloop_integration.py -v --record-mode=once + +To replay from cassettes (no API key needed): + uv run pytest tests/integration/test_traceloop_integration.py -v --record-mode=none + +Cassettes are stored in tests/integration/cassettes/test_traceloop_integration/ +""" + +import pytest + +from opentelemetry_mcp.backends.traceloop import TraceloopBackend +from opentelemetry_mcp.models import ( + Filter, + FilterOperator, + FilterType, + SpanQuery, + TraceQuery, +) + + +@pytest.mark.integration +@pytest.mark.vcr +class TestTraceloopBackendHealth: + """Test Traceloop backend health checks.""" + + @pytest.mark.vcr + async def test_health_check_healthy(self, traceloop_backend: TraceloopBackend) -> None: + """Test health check returns healthy status when backend is accessible.""" + health = await traceloop_backend.health_check() + assert health.status == "healthy" + assert health.backend == "traceloop" + assert health.url is not None + + +@pytest.mark.integration +@pytest.mark.vcr +class TestTraceloopListServices: + """Test Traceloop service listing.""" + + @pytest.mark.vcr + async def test_list_services(self, traceloop_backend: TraceloopBackend) -> None: + """Test listing all available services.""" + services = await traceloop_backend.list_services() + + # Should return a list of service names + assert isinstance(services, list) + # Traceloop should have at least some services if data exists + # (This may return empty list if no data in the account) + if len(services) > 0: + assert all(isinstance(s, str) for s in services) + # Services should be unique and sorted + assert len(services) == len(set(services)) + assert services == sorted(services) + + +@pytest.mark.integration +@pytest.mark.vcr +class TestTraceloopServiceOperations: + """Test Traceloop service operations listing.""" + + @pytest.mark.vcr + async def test_get_service_operations(self, traceloop_backend: TraceloopBackend) -> None: + """Test getting operations for a specific service.""" + # First get available services + services = await traceloop_backend.list_services() + + if len(services) == 0: + pytest.skip("No services available for testing") + + # Get operations for the first service + service_name = services[-1] + operations = await traceloop_backend.get_service_operations(service_name) + + # Should return a list of operation names + assert isinstance(operations, list) + if len(operations) > 0: + assert all(isinstance(op, str) for op in operations) + + +@pytest.mark.integration +@pytest.mark.vcr +class TestTraceloopSearchTraces: + """Test Traceloop trace search functionality.""" + + @pytest.mark.vcr + async def test_search_traces_basic(self, traceloop_backend: TraceloopBackend) -> None: + """Test basic trace search without filters.""" + query = TraceQuery(limit=10) + traces = await traceloop_backend.search_traces(query) + + # Should return a list (may be empty if no data) + assert isinstance(traces, list) + + if len(traces) > 0: + # Verify trace structure + trace = traces[0] + assert trace.trace_id is not None + assert trace.spans is not None + assert len(trace.spans) > 0 + assert trace.service_name is not None + assert trace.duration_ms >= 0 + + @pytest.mark.vcr + async def test_search_traces_with_service_filter( + self, traceloop_backend: TraceloopBackend + ) -> None: + """Test trace search filtered by service name.""" + # First get available services + services = await traceloop_backend.list_services() + + if len(services) == 0: + pytest.skip("No services available for testing") + + service_name = services[-1] + query = TraceQuery(service_name=service_name, limit=10) + + traces = await traceloop_backend.search_traces(query) + + # All traces should be from the specified service + for trace in traces: + assert trace.service_name == service_name + + @pytest.mark.vcr + async def test_search_traces_with_limit(self, traceloop_backend: TraceloopBackend) -> None: + """Test that limit parameter is respected.""" + limit = 5 + query = TraceQuery(limit=limit) + + traces = await traceloop_backend.search_traces(query) + + # Should not exceed the limit + assert len(traces) <= limit + + @pytest.mark.vcr + async def test_search_traces_with_duration_filter( + self, traceloop_backend: TraceloopBackend + ) -> None: + """Test trace search with duration filter.""" + # Search for traces longer than 100ms + query = TraceQuery(min_duration_ms=100, limit=10) + + traces = await traceloop_backend.search_traces(query) + + # Skip if no traces found (test data may not have matching traces) + if len(traces) == 0: + pytest.skip("No traces with duration >= 100ms found in test data") + + # All traces should meet the duration requirement + for trace in traces: + assert trace.duration_ms >= 100 + + @pytest.mark.vcr + async def test_search_traces_with_error_filter( + self, traceloop_backend: TraceloopBackend + ) -> None: + """Test trace search for traces with errors.""" + query = TraceQuery(has_error=True, limit=10) + + traces = await traceloop_backend.search_traces(query) + + # Skip if no error traces found (test data may not have errors) + if len(traces) == 0: + pytest.skip("No error traces found in test data") + + # All traces should have error status + for trace in traces: + assert trace.status == "ERROR" + + @pytest.mark.vcr + async def test_search_traces_with_generic_filter( + self, traceloop_backend: TraceloopBackend + ) -> None: + """Test trace search with generic filter conditions.""" + # Filter for traces with duration > 50ms using generic filter + filter_condition = Filter( + field="duration_ms", + operator=FilterOperator.GT, + value=50, + value_type=FilterType.NUMBER, + ) + + query = TraceQuery(filters=[filter_condition], limit=10) + + traces = await traceloop_backend.search_traces(query) + + # Skip if no matching traces found + if len(traces) == 0: + pytest.skip("No traces with duration > 50ms found in test data") + + # All traces should meet the filter condition + for trace in traces: + assert trace.duration_ms > 50 + + @pytest.mark.vcr + async def test_search_spans_with_llm_model_filter( + self, traceloop_backend: TraceloopBackend + ) -> None: + """Test trace search filtered by LLM model.""" + query = SpanQuery(gen_ai_request_model="gpt-4o-mini", limit=200) + + spans = await traceloop_backend.search_spans(query) + + # Skip if no matching traces found (test data may not have gpt-4 traces) + if len(spans) == 0: + pytest.skip("No traces with gpt-4o-mini model found in test data") + + # Verify all returned traces have the correct model + for span in spans: + # Check if any span has the requested model + assert span.attributes.gen_ai_request_model == "gpt-4o-mini" + + +@pytest.mark.integration +@pytest.mark.vcr +class TestTraceloopGetTrace: + """Test Traceloop trace retrieval by ID.""" + + @pytest.mark.vcr + async def test_get_trace_by_id(self, traceloop_backend: TraceloopBackend) -> None: + """Test retrieving a specific trace by ID.""" + # First, search for a trace to get a valid trace_id + query = TraceQuery(limit=1) + traces = await traceloop_backend.search_traces(query) + + if len(traces) == 0: + pytest.skip("No traces available for testing") + + trace_id = traces[0].trace_id + + # Now get the trace by ID + trace = await traceloop_backend.get_trace(trace_id) + + assert trace.trace_id == trace_id + assert len(trace.spans) > 0 + assert trace.service_name is not None + + @pytest.mark.vcr + async def test_get_trace_invalid_id(self, traceloop_backend: TraceloopBackend) -> None: + """Test getting a trace with an invalid ID raises an error.""" + with pytest.raises(Exception): # Will be httpx.HTTPError or ValueError + await traceloop_backend.get_trace("invalid-trace-id-12345") + + +@pytest.mark.integration +@pytest.mark.vcr +class TestTraceloopSearchSpans: + """Test Traceloop span search functionality.""" + + @pytest.mark.vcr + async def test_search_spans_basic(self, traceloop_backend: TraceloopBackend) -> None: + """Test basic span search without filters.""" + query = SpanQuery(limit=20) + spans = await traceloop_backend.search_spans(query) + + # Should return a list of spans + assert isinstance(spans, list) + + if len(spans) > 0: + # Verify span structure + span = spans[0] + assert span.trace_id is not None + assert span.span_id is not None + assert span.operation_name is not None + assert span.service_name is not None + assert span.duration_ms >= 0 + + @pytest.mark.vcr + async def test_search_spans_with_service_filter( + self, traceloop_backend: TraceloopBackend + ) -> None: + """Test span search filtered by service name.""" + services = await traceloop_backend.list_services() + + if len(services) == 0: + pytest.skip("No services available for testing") + + service_name = services[-1] + query = SpanQuery(service_name=service_name, limit=20) + + spans = await traceloop_backend.search_spans(query) + + # All spans should be from the specified service + for span in spans: + assert span.service_name == service_name + + @pytest.mark.vcr + async def test_search_spans_with_limit(self, traceloop_backend: TraceloopBackend) -> None: + """Test that span limit parameter is respected.""" + limit = 10 + query = SpanQuery(limit=limit) + + spans = await traceloop_backend.search_spans(query) + + # Should not exceed the limit + assert len(spans) <= limit + + @pytest.mark.vcr + async def test_search_spans_with_operation(self, traceloop_backend: TraceloopBackend) -> None: + """Test span search filtered by operation name.""" + services = await traceloop_backend.list_services() + + if len(services) == 0: + pytest.skip("No services available for testing") + + service_name = services[-1] + operations = await traceloop_backend.get_service_operations(service_name) + + if len(operations) == 0: + pytest.skip("No operations available for testing") + + operation_name = operations[0] + query = SpanQuery(service_name=service_name, operation_name=operation_name, limit=20) + + spans = await traceloop_backend.search_spans(query) + + # At least some spans should have the specified operation name + # (not all spans necessarily, as client-side filtering may apply) + if len(spans) > 0: + operation_names = [s.operation_name for s in spans] + assert operation_name in operation_names + + @pytest.mark.vcr + async def test_search_spans_with_generic_filter( + self, traceloop_backend: TraceloopBackend + ) -> None: + """Test span search with generic filter conditions.""" + # Filter for spans with duration > 10ms + filter_condition = Filter( + field="duration_ms", + operator=FilterOperator.GT, + value=10, + value_type=FilterType.NUMBER, + ) + + query = SpanQuery(filters=[filter_condition], limit=20) + + spans = await traceloop_backend.search_spans(query) + + # Skip if no matching spans found + if len(spans) == 0: + pytest.skip("No spans with duration > 10ms found in test data") + + # All spans should meet the filter condition + for span in spans: + assert span.duration_ms > 10 + + +@pytest.mark.integration +@pytest.mark.vcr +class TestTraceloopLLMSpans: + """Test Traceloop LLM-specific span functionality.""" + + @pytest.mark.vcr + async def test_search_llm_spans(self, traceloop_backend: TraceloopBackend) -> None: + """Test searching for LLM spans with gen_ai attributes.""" + # Filter for spans with gen_ai.system attribute + filter_condition = Filter( + field="gen_ai.system", + operator=FilterOperator.EXISTS, + value_type=FilterType.STRING, + ) + + query = SpanQuery(filters=[filter_condition], limit=20) + + spans = await traceloop_backend.search_spans(query) + + # Skip if no LLM spans found + if len(spans) == 0: + pytest.skip("No LLM spans found in test data") + + # All spans should be LLM spans + for span in spans: + assert span.is_llm_span + + @pytest.mark.vcr + async def test_search_spans_by_llm_system(self, traceloop_backend: TraceloopBackend) -> None: + """Test searching spans by LLM system/provider.""" + # Search for OpenAI spans + query = SpanQuery(gen_ai_system="openai", limit=20) + + spans = await traceloop_backend.search_spans(query) + + # Skip if no OpenAI spans found + if len(spans) == 0: + pytest.skip("No OpenAI LLM spans found in test data") + + # All returned spans should be from OpenAI + for span in spans: + assert span.is_llm_span + # Check gen_ai.system or llm.vendor + system = span.attributes.gen_ai_system or span.attributes.llm_vendor + if system: + assert system.lower() == "openai" + + +@pytest.mark.integration +@pytest.mark.vcr +class TestTraceloopFilters: + """Test Traceloop filter capabilities.""" + + @pytest.mark.vcr + async def test_search_with_multiple_filters(self, traceloop_backend: TraceloopBackend) -> None: + """Test trace search with multiple filter conditions combined with AND.""" + # Get a service first + services = await traceloop_backend.list_services() + + if len(services) == 0: + pytest.skip("No services available for testing") + + service_name = services[-1] + + # Combine service filter with duration filter + filters = [ + Filter( + field="service.name", + operator=FilterOperator.EQUALS, + value=service_name, + value_type=FilterType.STRING, + ), + Filter( + field="duration_ms", + operator=FilterOperator.GT, + value=50, + value_type=FilterType.NUMBER, + ), + ] + + query = TraceQuery(filters=filters, limit=10) + + traces = await traceloop_backend.search_traces(query) + + # Skip if no matching traces found + if len(traces) == 0: + pytest.skip(f"No traces for service '{service_name}' with duration > 50ms found") + + # All traces should match both conditions + for trace in traces: + assert trace.service_name == service_name + assert trace.duration_ms > 50 + + @pytest.mark.vcr + async def test_search_with_comparison_operators( + self, traceloop_backend: TraceloopBackend + ) -> None: + """Test various comparison operators (GT, LT, GTE, LTE).""" + # Test GTE operator + filter_gte = Filter( + field="duration_ms", + operator=FilterOperator.GTE, + value=100, + value_type=FilterType.NUMBER, + ) + + query = TraceQuery(filters=[filter_gte], limit=10) + traces = await traceloop_backend.search_traces(query) + + # Skip if no matching traces found + if len(traces) == 0: + pytest.skip("No traces with duration >= 100ms found in test data") + + for trace in traces: + assert trace.duration_ms >= 100 diff --git a/tests/test_models.py b/tests/test_models.py new file mode 100644 index 0000000..87d196e --- /dev/null +++ b/tests/test_models.py @@ -0,0 +1,128 @@ +"""Tests for data models.""" + +from datetime import datetime + +from opentelemetry_mcp.attributes import SpanAttributes +from opentelemetry_mcp.models import LLMSpanAttributes, SpanData, TraceData, TraceQuery + + +def test_span_data_is_llm_span() -> None: + """Test LLM span detection.""" + # LLM span + llm_span = SpanData( + trace_id="test", + span_id="span1", + operation_name="chat.completions", + service_name="test", + start_time=datetime.now(), + duration_ms=100, + attributes=SpanAttributes.model_validate({"gen_ai.system": "openai"}), + ) + assert llm_span.is_llm_span is True + + # Non-LLM span + regular_span = SpanData( + trace_id="test", + span_id="span2", + operation_name="http.request", + service_name="test", + start_time=datetime.now(), + duration_ms=50, + attributes=SpanAttributes.model_validate({"http.method": "GET"}), + ) + assert regular_span.is_llm_span is False + + +def test_llm_span_attributes_from_span() -> None: + """Test extracting LLM attributes from span.""" + span = SpanData( + trace_id="test", + span_id="span1", + operation_name="chat.completions", + service_name="test", + start_time=datetime.now(), + duration_ms=100, + attributes=SpanAttributes.model_validate( + { + "gen_ai.system": "openai", + "gen_ai.request.model": "gpt-4", + "gen_ai.usage.prompt_tokens": 150, + "gen_ai.usage.completion_tokens": 300, + "gen_ai.usage.total_tokens": 450, + } + ), + ) + + llm_attrs = LLMSpanAttributes.from_span(span) + assert llm_attrs is not None + assert llm_attrs.system == "openai" + assert llm_attrs.request_model == "gpt-4" + assert llm_attrs.prompt_tokens == 150 + assert llm_attrs.completion_tokens == 300 + assert llm_attrs.total_tokens == 450 + + +def test_llm_span_attributes_anthropic_tokens() -> None: + """Test handling Anthropic token naming (input_tokens vs prompt_tokens).""" + span = SpanData( + trace_id="test", + span_id="span1", + operation_name="anthropic.messages", + service_name="test", + start_time=datetime.now(), + duration_ms=200, + attributes=SpanAttributes.model_validate( + { + "gen_ai.system": "anthropic", + "gen_ai.request.model": "claude-3-opus", + "gen_ai.usage.input_tokens": 100, # Anthropic uses input_tokens + "gen_ai.usage.output_tokens": 200, # Anthropic uses output_tokens + } + ), + ) + + llm_attrs = LLMSpanAttributes.from_span(span) + assert llm_attrs is not None + assert llm_attrs.system == "anthropic" + assert llm_attrs.prompt_tokens == 100 + assert llm_attrs.completion_tokens == 200 + + +def test_trace_data_llm_spans(sample_trace_data: TraceData) -> None: + """Test filtering LLM spans from trace.""" + trace = sample_trace_data + llm_spans = trace.llm_spans + + assert len(llm_spans) == 1 + assert llm_spans[0].is_llm_span is True + + +def test_trace_data_total_tokens(sample_trace_data: TraceData) -> None: + """Test total token calculation.""" + trace = sample_trace_data + total_tokens = trace.total_llm_tokens + + assert total_tokens == 300 + + +def test_trace_query_to_backend_params() -> None: + """Test converting TraceQuery to backend parameters.""" + query = TraceQuery( + service_name="my-service", + operation_name="my-operation", + min_duration_ms=100, + limit=50, + gen_ai_system="openai", + tags={"custom.tag": "value"}, + ) + + params = query.to_backend_params() + + assert params["service"] == "my-service" + assert params["operation"] == "my-operation" + assert params["minDuration"] == "100ms" + assert params["limit"] == 50 + tags = params["tags"] + assert isinstance(tags, str) + assert "openai" in tags + assert "custom.tag" in tags diff --git a/tests/test_traceloop.py b/tests/test_traceloop.py new file mode 100644 index 0000000..3e4b360 --- /dev/null +++ b/tests/test_traceloop.py @@ -0,0 +1,231 @@ +"""Tests for Traceloop backend.""" + +from datetime import datetime + +import pytest + +from opentelemetry_mcp.backends.traceloop import TraceloopBackend +from opentelemetry_mcp.models import TraceQuery + + +def test_traceloop_backend_requires_api_key() -> None: + """Test that Traceloop backend requires an API key.""" + with pytest.raises(ValueError, match="requires an API key"): + TraceloopBackend(url="https://api.traceloop.com/v2", api_key=None) + + +def test_traceloop_backend_initialization() -> None: + """Test Traceloop backend initializes correctly.""" + backend = TraceloopBackend( + url="https://api.traceloop.com/v2", + api_key="test_key", + timeout=30.0, + ) + + assert backend.url == "https://api.traceloop.com/v2" + assert backend.api_key == "test_key" + assert backend.timeout == 30.0 + assert backend.project_id == "default" + + +def test_traceloop_client_headers() -> None: + """Test that Traceloop client has correct headers.""" + backend = TraceloopBackend( + url="https://api.traceloop.com/v2", + api_key="test_key", + ) + + client = backend.client + assert client.headers["Authorization"] == "Bearer test_key" + assert client.headers["Content-Type"] == "application/json" + + +def test_build_filters_for_search() -> None: + """Test filter building for search_traces.""" + query = TraceQuery( + service_name="my-service", + operation_name="my-operation", + gen_ai_system="openai", + gen_ai_request_model="gpt-4", + min_duration_ms=1000, + max_duration_ms=5000, + has_error=True, + tags={"custom.tag": "value"}, + limit=50, + ) + + # This would be built by the search_traces method + # We're just testing the logic + + filters = [] + + if query.service_name: + filters.append({"field": "service_name", "operator": "equals", "value": query.service_name}) + + if query.operation_name: + filters.append({"field": "span_name", "operator": "equals", "value": query.operation_name}) + + if query.gen_ai_system: + filters.append( + { + "field": "span_attributes.gen_ai.system", + "operator": "equals", + "value": query.gen_ai_system, + } + ) + + if query.gen_ai_request_model: + filters.append( + { + "field": "span_attributes.gen_ai.request.model", + "operator": "equals", + "value": query.gen_ai_request_model, + } + ) + + if query.min_duration_ms: + filters.append( + { + "field": "duration", + "operator": "greater_than", + "value": str(query.min_duration_ms), + } + ) + + if query.max_duration_ms: + filters.append( + { + "field": "duration", + "operator": "less_than", + "value": str(query.max_duration_ms), + } + ) + + if query.has_error: + filters.append({"field": "status_code", "operator": "equals", "value": "ERROR"}) + + for key, value in query.tags.items(): + filters.append( + { + "field": f"span_attributes.{key}", + "operator": "equals", + "value": value, + } + ) + + # Verify all filters were added + assert len(filters) == 8 + assert filters[0] == {"field": "service_name", "operator": "equals", "value": "my-service"} + assert filters[1] == {"field": "span_name", "operator": "equals", "value": "my-operation"} + assert filters[2] == { + "field": "span_attributes.gen_ai.system", + "operator": "equals", + "value": "openai", + } + assert filters[3] == { + "field": "span_attributes.gen_ai.request.model", + "operator": "equals", + "value": "gpt-4", + } + assert filters[4] == {"field": "duration", "operator": "greater_than", "value": "1000"} + assert filters[5] == {"field": "duration", "operator": "less_than", "value": "5000"} + assert filters[6] == {"field": "status_code", "operator": "equals", "value": "ERROR"} + assert filters[7] == { + "field": "span_attributes.custom.tag", + "operator": "equals", + "value": "value", + } + + +def test_convert_root_span_to_trace() -> None: + """Test converting Traceloop root span to TraceData.""" + backend = TraceloopBackend(url="https://api.traceloop.com/v2", api_key="test_key") + + root_span = { + "trace_id": "abc123", + "span_id": "span1", + "parent_span_id": "", + "span_name": "workflow", + "service_name": "my-service", + "timestamp": 1704120000000, # milliseconds + "duration": 3000, # milliseconds + "status_code": "OK", + "span_attributes": { + "gen_ai.system": "openai", + "gen_ai.request.model": "gpt-4", + "gen_ai.usage.total_tokens": 1500, + }, + } + + trace = backend._convert_root_span_to_trace(root_span) + + assert trace is not None + assert trace.trace_id == "abc123" + assert len(trace.spans) == 1 + assert trace.spans[0].span_id == "span1" + assert trace.spans[0].operation_name == "workflow" + assert trace.service_name == "my-service" + assert trace.status == "OK" + assert trace.duration_ms == 3000 + + +def test_convert_spans_to_trace() -> None: + """Test converting Traceloop spans array to TraceData.""" + backend = TraceloopBackend(url="https://api.traceloop.com/v2", api_key="test_key") + + spans_data = [ + { + "trace_id": "abc123", + "span_id": "root", + "parent_span_id": "", + "span_name": "workflow", + "timestamp": 1704120000000, + "duration": 3000, + "span_attributes": {"traceloop.workflow.name": "chat"}, + }, + { + "trace_id": "abc123", + "span_id": "child", + "parent_span_id": "root", + "span_name": "llm.completion", + "timestamp": 1704120001000, + "duration": 2000, + "span_attributes": { + "gen_ai.system": "openai", + "gen_ai.request.model": "gpt-4", + "gen_ai.usage.total_tokens": 1500, + }, + }, + ] + + trace = backend._convert_spans_to_trace("abc123", spans_data) + + assert trace is not None + assert trace.trace_id == "abc123" + assert len(trace.spans) == 2 + assert trace.spans[0].span_id == "root" + assert trace.spans[1].span_id == "child" + assert trace.spans[1].attributes.gen_ai_system == "openai" + + +def test_timestamp_conversion() -> None: + """Test timestamp conversion from milliseconds to datetime.""" + # Traceloop returns timestamps in milliseconds + timestamp_ms = 1704120000000 + + # Convert to datetime + dt = datetime.fromtimestamp(timestamp_ms / 1000) + + # Verify conversion + assert dt.year == 2024 + assert dt.month == 1 + assert dt.day == 1 + + +def test_duration_conversion() -> None: + """Test duration stays in milliseconds.""" + # Traceloop returns duration in milliseconds + duration_ms = 3500 + + # Our internal model also uses milliseconds + assert float(duration_ms) == 3500.0 diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000..dc07fef --- /dev/null +++ b/uv.lock @@ -0,0 +1,2131 @@ +version = 1 +revision = 2 +requires-python = ">=3.11" +resolution-markers = [ + "platform_python_implementation != 'PyPy'", + "platform_python_implementation == 'PyPy'", +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "anyio" +version = "4.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "sniffio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c6/78/7d432127c41b50bccba979505f272c16cbcadcc33645d5fa3a738110ae75/anyio-4.11.0.tar.gz", hash = "sha256:82a8d0b81e318cc5ce71a5f1f8b5c4e63619620b63141ef8c995fa0db95a57c4", size = 219094, upload-time = "2025-09-23T09:19:12.58Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/15/b3/9b1a8074496371342ec1e796a96f99c82c945a339cd81a8e73de28b4cf9e/anyio-4.11.0-py3-none-any.whl", hash = "sha256:0287e96f4d26d4149305414d4e3bc32f0dcd0862365a4bddea19d7a1ec38c4fc", size = 109097, upload-time = "2025-09-23T09:19:10.601Z" }, +] + +[[package]] +name = "attrs" +version = "25.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, +] + +[[package]] +name = "authlib" +version = "1.6.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cd/3f/1d3bbd0bf23bdd99276d4def22f29c27a914067b4cf66f753ff9b8bbd0f3/authlib-1.6.5.tar.gz", hash = "sha256:6aaf9c79b7cc96c900f0b284061691c5d4e61221640a948fe690b556a6d6d10b", size = 164553, upload-time = "2025-10-02T13:36:09.489Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/aa/5082412d1ee302e9e7d80b6949bc4d2a8fa1149aaab610c5fc24709605d6/authlib-1.6.5-py2.py3-none-any.whl", hash = "sha256:3e0e0507807f842b02175507bdee8957a1d5707fd4afb17c32fb43fee90b6e3a", size = 243608, upload-time = "2025-10-02T13:36:07.637Z" }, +] + +[[package]] +name = "backports-tarfile" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/86/72/cd9b395f25e290e633655a100af28cb253e4393396264a98bd5f5951d50f/backports_tarfile-1.2.0.tar.gz", hash = "sha256:d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991", size = 86406, upload-time = "2024-05-28T17:01:54.731Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/fa/123043af240e49752f1c4bd24da5053b6bd00cad78c2be53c0d1e8b975bc/backports.tarfile-1.2.0-py3-none-any.whl", hash = "sha256:77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34", size = 30181, upload-time = "2024-05-28T17:01:53.112Z" }, +] + +[[package]] +name = "beartype" +version = "0.22.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/09/9003e5662691056e0e8b2e6f57c799e71875fac0be0e785d8cb11557cd2a/beartype-0.22.5.tar.gz", hash = "sha256:516a9096cc77103c96153474fa35c3ebcd9d36bd2ec8d0e3a43307ced0fa6341", size = 1586256, upload-time = "2025-11-01T05:49:20.771Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/f6/073d19f7b571c08327fbba3f8e011578da67ab62a11f98911274ff80653f/beartype-0.22.5-py3-none-any.whl", hash = "sha256:d9743dd7cd6d193696eaa1e025f8a70fb09761c154675679ff236e61952dfba0", size = 1321700, upload-time = "2025-11-01T05:49:18.436Z" }, +] + +[[package]] +name = "cachetools" +version = "6.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/7e/b975b5814bd36faf009faebe22c1072a1fa1168db34d285ef0ba071ad78c/cachetools-6.2.1.tar.gz", hash = "sha256:3f391e4bd8f8bf0931169baf7456cc822705f4e2a31f840d218f445b9a854201", size = 31325, upload-time = "2025-10-12T14:55:30.139Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/c5/1e741d26306c42e2bf6ab740b2202872727e0f606033c9dd713f8b93f5a8/cachetools-6.2.1-py3-none-any.whl", hash = "sha256:09868944b6dde876dfd44e1d47e18484541eaf12f26f29b7af91b26cc892d701", size = 11280, upload-time = "2025-10-12T14:55:28.382Z" }, +] + +[[package]] +name = "certifi" +version = "2025.10.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/5b/b6ce21586237c77ce67d01dc5507039d444b630dd76611bbca2d8e5dcd91/certifi-2025.10.5.tar.gz", hash = "sha256:47c09d31ccf2acf0be3f701ea53595ee7e0b8fa08801c6624be771df09ae7b43", size = 164519, upload-time = "2025-10-05T04:12:15.808Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/37/af0d2ef3967ac0d6113837b44a4f0bfe1328c2b9763bd5b1744520e5cfed/certifi-2025.10.5-py3-none-any.whl", hash = "sha256:0f212c2744a9bb6de0c56639a6f68afe01ecd92d91f14ae897c4fe7bbeeef0de", size = 163286, upload-time = "2025-10-05T04:12:14.03Z" }, +] + +[[package]] +name = "cffi" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy' and platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/4a/3dfd5f7850cbf0d06dc84ba9aa00db766b52ca38d8b86e3a38314d52498c/cffi-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe", size = 184344, upload-time = "2025-09-08T23:22:26.456Z" }, + { url = "https://files.pythonhosted.org/packages/4f/8b/f0e4c441227ba756aafbe78f117485b25bb26b1c059d01f137fa6d14896b/cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c", size = 180560, upload-time = "2025-09-08T23:22:28.197Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b7/1200d354378ef52ec227395d95c2576330fd22a869f7a70e88e1447eb234/cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92", size = 209613, upload-time = "2025-09-08T23:22:29.475Z" }, + { url = "https://files.pythonhosted.org/packages/b8/56/6033f5e86e8cc9bb629f0077ba71679508bdf54a9a5e112a3c0b91870332/cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93", size = 216476, upload-time = "2025-09-08T23:22:31.063Z" }, + { url = "https://files.pythonhosted.org/packages/dc/7f/55fecd70f7ece178db2f26128ec41430d8720f2d12ca97bf8f0a628207d5/cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5", size = 203374, upload-time = "2025-09-08T23:22:32.507Z" }, + { url = "https://files.pythonhosted.org/packages/84/ef/a7b77c8bdc0f77adc3b46888f1ad54be8f3b7821697a7b89126e829e676a/cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664", size = 202597, upload-time = "2025-09-08T23:22:34.132Z" }, + { url = "https://files.pythonhosted.org/packages/d7/91/500d892b2bf36529a75b77958edfcd5ad8e2ce4064ce2ecfeab2125d72d1/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26", size = 215574, upload-time = "2025-09-08T23:22:35.443Z" }, + { url = "https://files.pythonhosted.org/packages/44/64/58f6255b62b101093d5df22dcb752596066c7e89dd725e0afaed242a61be/cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9", size = 218971, upload-time = "2025-09-08T23:22:36.805Z" }, + { url = "https://files.pythonhosted.org/packages/ab/49/fa72cebe2fd8a55fbe14956f9970fe8eb1ac59e5df042f603ef7c8ba0adc/cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414", size = 211972, upload-time = "2025-09-08T23:22:38.436Z" }, + { url = "https://files.pythonhosted.org/packages/0b/28/dd0967a76aab36731b6ebfe64dec4e981aff7e0608f60c2d46b46982607d/cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743", size = 217078, upload-time = "2025-09-08T23:22:39.776Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c0/015b25184413d7ab0a410775fdb4a50fca20f5589b5dab1dbbfa3baad8ce/cffi-2.0.0-cp311-cp311-win32.whl", hash = "sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5", size = 172076, upload-time = "2025-09-08T23:22:40.95Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8f/dc5531155e7070361eb1b7e4c1a9d896d0cb21c49f807a6c03fd63fc877e/cffi-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5", size = 182820, upload-time = "2025-09-08T23:22:42.463Z" }, + { url = "https://files.pythonhosted.org/packages/95/5c/1b493356429f9aecfd56bc171285a4c4ac8697f76e9bbbbb105e537853a1/cffi-2.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d", size = 177635, upload-time = "2025-09-08T23:22:43.623Z" }, + { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload-time = "2025-09-08T23:22:44.795Z" }, + { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload-time = "2025-09-08T23:22:45.938Z" }, + { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" }, + { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload-time = "2025-09-08T23:22:50.06Z" }, + { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload-time = "2025-09-08T23:22:51.364Z" }, + { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" }, + { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" }, + { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" }, + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload-time = "2025-09-08T23:23:00.879Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload-time = "2025-09-08T23:23:02.231Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload-time = "2025-09-08T23:23:03.472Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload-time = "2025-09-08T23:23:04.792Z" }, + { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload-time = "2025-09-08T23:23:06.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload-time = "2025-09-08T23:23:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload-time = "2025-09-08T23:23:09.648Z" }, + { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload-time = "2025-09-08T23:23:10.928Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload-time = "2025-09-08T23:23:12.42Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, + { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload-time = "2025-09-08T23:23:18.087Z" }, + { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload-time = "2025-09-08T23:23:19.622Z" }, + { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload-time = "2025-09-08T23:23:20.853Z" }, + { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload-time = "2025-09-08T23:23:22.08Z" }, + { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload-time = "2025-09-08T23:23:23.314Z" }, + { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload-time = "2025-09-08T23:23:24.541Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload-time = "2025-09-08T23:23:26.143Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload-time = "2025-09-08T23:23:27.873Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload-time = "2025-09-08T23:23:29.347Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload-time = "2025-09-08T23:23:30.63Z" }, + { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload-time = "2025-09-08T23:23:31.91Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload-time = "2025-09-08T23:23:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload-time = "2025-09-08T23:23:34.495Z" }, + { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload-time = "2025-09-08T23:23:36.096Z" }, + { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload-time = "2025-09-08T23:23:37.328Z" }, + { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload-time = "2025-09-08T23:23:38.945Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", size = 206988, upload-time = "2025-10-14T04:40:33.79Z" }, + { url = "https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", size = 147324, upload-time = "2025-10-14T04:40:34.961Z" }, + { url = "https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", size = 142742, upload-time = "2025-10-14T04:40:36.105Z" }, + { url = "https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", size = 160863, upload-time = "2025-10-14T04:40:37.188Z" }, + { url = "https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", size = 157837, upload-time = "2025-10-14T04:40:38.435Z" }, + { url = "https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", size = 151550, upload-time = "2025-10-14T04:40:40.053Z" }, + { url = "https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", size = 149162, upload-time = "2025-10-14T04:40:41.163Z" }, + { url = "https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", size = 150019, upload-time = "2025-10-14T04:40:42.276Z" }, + { url = "https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", size = 143310, upload-time = "2025-10-14T04:40:43.439Z" }, + { url = "https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", size = 162022, upload-time = "2025-10-14T04:40:44.547Z" }, + { url = "https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", size = 149383, upload-time = "2025-10-14T04:40:46.018Z" }, + { url = "https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", size = 159098, upload-time = "2025-10-14T04:40:47.081Z" }, + { url = "https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", size = 152991, upload-time = "2025-10-14T04:40:48.246Z" }, + { url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", size = 99456, upload-time = "2025-10-14T04:40:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", size = 106978, upload-time = "2025-10-14T04:40:50.844Z" }, + { url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", size = 99969, upload-time = "2025-10-14T04:40:52.272Z" }, + { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425, upload-time = "2025-10-14T04:40:53.353Z" }, + { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162, upload-time = "2025-10-14T04:40:54.558Z" }, + { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558, upload-time = "2025-10-14T04:40:55.677Z" }, + { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497, upload-time = "2025-10-14T04:40:57.217Z" }, + { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240, upload-time = "2025-10-14T04:40:58.358Z" }, + { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471, upload-time = "2025-10-14T04:40:59.468Z" }, + { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864, upload-time = "2025-10-14T04:41:00.623Z" }, + { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647, upload-time = "2025-10-14T04:41:01.754Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110, upload-time = "2025-10-14T04:41:03.231Z" }, + { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839, upload-time = "2025-10-14T04:41:04.715Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667, upload-time = "2025-10-14T04:41:05.827Z" }, + { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535, upload-time = "2025-10-14T04:41:06.938Z" }, + { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816, upload-time = "2025-10-14T04:41:08.101Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload-time = "2025-10-14T04:41:09.23Z" }, + { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload-time = "2025-10-14T04:41:10.467Z" }, + { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload-time = "2025-10-14T04:41:11.915Z" }, + { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091, upload-time = "2025-10-14T04:41:13.346Z" }, + { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936, upload-time = "2025-10-14T04:41:14.461Z" }, + { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180, upload-time = "2025-10-14T04:41:15.588Z" }, + { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346, upload-time = "2025-10-14T04:41:16.738Z" }, + { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874, upload-time = "2025-10-14T04:41:17.923Z" }, + { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076, upload-time = "2025-10-14T04:41:19.106Z" }, + { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601, upload-time = "2025-10-14T04:41:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376, upload-time = "2025-10-14T04:41:21.398Z" }, + { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825, upload-time = "2025-10-14T04:41:22.583Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583, upload-time = "2025-10-14T04:41:23.754Z" }, + { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366, upload-time = "2025-10-14T04:41:25.27Z" }, + { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300, upload-time = "2025-10-14T04:41:26.725Z" }, + { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465, upload-time = "2025-10-14T04:41:28.322Z" }, + { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, + { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, + { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, + { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746, upload-time = "2025-10-14T04:41:33.773Z" }, + { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889, upload-time = "2025-10-14T04:41:34.897Z" }, + { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641, upload-time = "2025-10-14T04:41:36.116Z" }, + { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779, upload-time = "2025-10-14T04:41:37.229Z" }, + { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035, upload-time = "2025-10-14T04:41:38.368Z" }, + { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542, upload-time = "2025-10-14T04:41:39.862Z" }, + { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524, upload-time = "2025-10-14T04:41:41.319Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395, upload-time = "2025-10-14T04:41:42.539Z" }, + { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680, upload-time = "2025-10-14T04:41:43.661Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045, upload-time = "2025-10-14T04:41:44.821Z" }, + { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687, upload-time = "2025-10-14T04:41:46.442Z" }, + { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014, upload-time = "2025-10-14T04:41:47.631Z" }, + { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044, upload-time = "2025-10-14T04:41:48.81Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940, upload-time = "2025-10-14T04:41:49.946Z" }, + { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104, upload-time = "2025-10-14T04:41:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743, upload-time = "2025-10-14T04:41:52.122Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, +] + +[[package]] +name = "click" +version = "8.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/46/61/de6cd827efad202d7057d93e0fed9294b96952e188f7384832791c7b2254/click-8.3.0.tar.gz", hash = "sha256:e7b8232224eba16f4ebe410c25ced9f7875cb5f3263ffc93cc3e8da705e229c4", size = 276943, upload-time = "2025-09-18T17:32:23.696Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/db/d3/9dcc0f5797f070ec8edf30fbadfb200e71d9db6b84d211e3b2085a7589a0/click-8.3.0-py3-none-any.whl", hash = "sha256:9b9f285302c6e3064f4330c05f05b81945b2a39544279343e6e7c5f27a9baddc", size = 107295, upload-time = "2025-09-18T17:32:22.42Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "coverage" +version = "7.11.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d2/59/9698d57a3b11704c7b89b21d69e9d23ecf80d538cabb536c8b63f4a12322/coverage-7.11.3.tar.gz", hash = "sha256:0f59387f5e6edbbffec2281affb71cdc85e0776c1745150a3ab9b6c1d016106b", size = 815210, upload-time = "2025-11-10T00:13:17.18Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/92/43a961c0f57b666d01c92bcd960c7f93677de5e4ee7ca722564ad6dee0fa/coverage-7.11.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:200bb89fd2a8a07780eafcdff6463104dec459f3c838d980455cfa84f5e5e6e1", size = 216504, upload-time = "2025-11-10T00:10:49.524Z" }, + { url = "https://files.pythonhosted.org/packages/5d/5c/dbfc73329726aef26dbf7fefef81b8a2afd1789343a579ea6d99bf15d26e/coverage-7.11.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8d264402fc179776d43e557e1ca4a7d953020d3ee95f7ec19cc2c9d769277f06", size = 217006, upload-time = "2025-11-10T00:10:51.32Z" }, + { url = "https://files.pythonhosted.org/packages/a5/e0/878c84fb6661964bc435beb1e28c050650aa30e4c1cdc12341e298700bda/coverage-7.11.3-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:385977d94fc155f8731c895accdfcc3dd0d9dd9ef90d102969df95d3c637ab80", size = 247415, upload-time = "2025-11-10T00:10:52.805Z" }, + { url = "https://files.pythonhosted.org/packages/56/9e/0677e78b1e6a13527f39c4b39c767b351e256b333050539861c63f98bd61/coverage-7.11.3-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0542ddf6107adbd2592f29da9f59f5d9cff7947b5bb4f734805085c327dcffaa", size = 249332, upload-time = "2025-11-10T00:10:54.35Z" }, + { url = "https://files.pythonhosted.org/packages/54/90/25fc343e4ce35514262451456de0953bcae5b37dda248aed50ee51234cee/coverage-7.11.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d60bf4d7f886989ddf80e121a7f4d140d9eac91f1d2385ce8eb6bda93d563297", size = 251443, upload-time = "2025-11-10T00:10:55.832Z" }, + { url = "https://files.pythonhosted.org/packages/13/56/bc02bbc890fd8b155a64285c93e2ab38647486701ac9c980d457cdae857a/coverage-7.11.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0a3b6e32457535df0d41d2d895da46434706dd85dbaf53fbc0d3bd7d914b362", size = 247554, upload-time = "2025-11-10T00:10:57.829Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ab/0318888d091d799a82d788c1e8d8bd280f1d5c41662bbb6e11187efe33e8/coverage-7.11.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:876a3ee7fd2613eb79602e4cdb39deb6b28c186e76124c3f29e580099ec21a87", size = 249139, upload-time = "2025-11-10T00:10:59.465Z" }, + { url = "https://files.pythonhosted.org/packages/79/d8/3ee50929c4cd36fcfcc0f45d753337001001116c8a5b8dd18d27ea645737/coverage-7.11.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a730cd0824e8083989f304e97b3f884189efb48e2151e07f57e9e138ab104200", size = 247209, upload-time = "2025-11-10T00:11:01.432Z" }, + { url = "https://files.pythonhosted.org/packages/94/7c/3cf06e327401c293e60c962b4b8a2ceb7167c1a428a02be3adbd1d7c7e4c/coverage-7.11.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:b5cd111d3ab7390be0c07ad839235d5ad54d2ca497b5f5db86896098a77180a4", size = 246936, upload-time = "2025-11-10T00:11:02.964Z" }, + { url = "https://files.pythonhosted.org/packages/99/0b/ffc03dc8f4083817900fd367110015ef4dd227b37284104a5eb5edc9c106/coverage-7.11.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:074e6a5cd38e06671580b4d872c1a67955d4e69639e4b04e87fc03b494c1f060", size = 247835, upload-time = "2025-11-10T00:11:04.405Z" }, + { url = "https://files.pythonhosted.org/packages/17/4d/dbe54609ee066553d0bcdcdf108b177c78dab836292bee43f96d6a5674d1/coverage-7.11.3-cp311-cp311-win32.whl", hash = "sha256:86d27d2dd7c7c5a44710565933c7dc9cd70e65ef97142e260d16d555667deef7", size = 218994, upload-time = "2025-11-10T00:11:05.966Z" }, + { url = "https://files.pythonhosted.org/packages/94/11/8e7155df53f99553ad8114054806c01a2c0b08f303ea7e38b9831652d83d/coverage-7.11.3-cp311-cp311-win_amd64.whl", hash = "sha256:ca90ef33a152205fb6f2f0c1f3e55c50df4ef049bb0940ebba666edd4cdebc55", size = 219926, upload-time = "2025-11-10T00:11:07.936Z" }, + { url = "https://files.pythonhosted.org/packages/1f/93/bea91b6a9e35d89c89a1cd5824bc72e45151a9c2a9ca0b50d9e9a85e3ae3/coverage-7.11.3-cp311-cp311-win_arm64.whl", hash = "sha256:56f909a40d68947ef726ce6a34eb38f0ed241ffbe55c5007c64e616663bcbafc", size = 218599, upload-time = "2025-11-10T00:11:09.578Z" }, + { url = "https://files.pythonhosted.org/packages/c2/39/af056ec7a27c487e25c7f6b6e51d2ee9821dba1863173ddf4dc2eebef4f7/coverage-7.11.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5b771b59ac0dfb7f139f70c85b42717ef400a6790abb6475ebac1ecee8de782f", size = 216676, upload-time = "2025-11-10T00:11:11.566Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f8/21126d34b174d037b5d01bea39077725cbb9a0da94a95c5f96929c695433/coverage-7.11.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:603c4414125fc9ae9000f17912dcfd3d3eb677d4e360b85206539240c96ea76e", size = 217034, upload-time = "2025-11-10T00:11:13.12Z" }, + { url = "https://files.pythonhosted.org/packages/d5/3f/0fd35f35658cdd11f7686303214bd5908225838f374db47f9e457c8d6df8/coverage-7.11.3-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:77ffb3b7704eb7b9b3298a01fe4509cef70117a52d50bcba29cffc5f53dd326a", size = 248531, upload-time = "2025-11-10T00:11:15.023Z" }, + { url = "https://files.pythonhosted.org/packages/8f/59/0bfc5900fc15ce4fd186e092451de776bef244565c840c9c026fd50857e1/coverage-7.11.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4d4ca49f5ba432b0755ebb0fc3a56be944a19a16bb33802264bbc7311622c0d1", size = 251290, upload-time = "2025-11-10T00:11:16.628Z" }, + { url = "https://files.pythonhosted.org/packages/71/88/d5c184001fa2ac82edf1b8f2cd91894d2230d7c309e937c54c796176e35b/coverage-7.11.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:05fd3fb6edff0c98874d752013588836f458261e5eba587afe4c547bba544afd", size = 252375, upload-time = "2025-11-10T00:11:18.249Z" }, + { url = "https://files.pythonhosted.org/packages/5c/29/f60af9f823bf62c7a00ce1ac88441b9a9a467e499493e5cc65028c8b8dd2/coverage-7.11.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0e920567f8c3a3ce68ae5a42cf7c2dc4bb6cc389f18bff2235dd8c03fa405de5", size = 248946, upload-time = "2025-11-10T00:11:20.202Z" }, + { url = "https://files.pythonhosted.org/packages/67/16/4662790f3b1e03fce5280cad93fd18711c35980beb3c6f28dca41b5230c6/coverage-7.11.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4bec8c7160688bd5a34e65c82984b25409563134d63285d8943d0599efbc448e", size = 250310, upload-time = "2025-11-10T00:11:21.689Z" }, + { url = "https://files.pythonhosted.org/packages/8f/75/dd6c2e28308a83e5fc1ee602f8204bd3aa5af685c104cb54499230cf56db/coverage-7.11.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:adb9b7b42c802bd8cb3927de8c1c26368ce50c8fdaa83a9d8551384d77537044", size = 248461, upload-time = "2025-11-10T00:11:23.384Z" }, + { url = "https://files.pythonhosted.org/packages/16/fe/b71af12be9f59dc9eb060688fa19a95bf3223f56c5af1e9861dfa2275d2c/coverage-7.11.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:c8f563b245b4ddb591e99f28e3cd140b85f114b38b7f95b2e42542f0603eb7d7", size = 248039, upload-time = "2025-11-10T00:11:25.07Z" }, + { url = "https://files.pythonhosted.org/packages/11/b8/023b2003a2cd96bdf607afe03d9b96c763cab6d76e024abe4473707c4eb8/coverage-7.11.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e2a96fdc7643c9517a317553aca13b5cae9bad9a5f32f4654ce247ae4d321405", size = 249903, upload-time = "2025-11-10T00:11:26.992Z" }, + { url = "https://files.pythonhosted.org/packages/d6/ee/5f1076311aa67b1fa4687a724cc044346380e90ce7d94fec09fd384aa5fd/coverage-7.11.3-cp312-cp312-win32.whl", hash = "sha256:e8feeb5e8705835f0622af0fe7ff8d5cb388948454647086494d6c41ec142c2e", size = 219201, upload-time = "2025-11-10T00:11:28.619Z" }, + { url = "https://files.pythonhosted.org/packages/4f/24/d21688f48fe9fcc778956680fd5aaf69f4e23b245b7c7a4755cbd421d25b/coverage-7.11.3-cp312-cp312-win_amd64.whl", hash = "sha256:abb903ffe46bd319d99979cdba350ae7016759bb69f47882242f7b93f3356055", size = 220012, upload-time = "2025-11-10T00:11:30.234Z" }, + { url = "https://files.pythonhosted.org/packages/4f/9e/d5eb508065f291456378aa9b16698b8417d87cb084c2b597f3beb00a8084/coverage-7.11.3-cp312-cp312-win_arm64.whl", hash = "sha256:1451464fd855d9bd000c19b71bb7dafea9ab815741fb0bd9e813d9b671462d6f", size = 218652, upload-time = "2025-11-10T00:11:32.165Z" }, + { url = "https://files.pythonhosted.org/packages/6d/f6/d8572c058211c7d976f24dab71999a565501fb5b3cdcb59cf782f19c4acb/coverage-7.11.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84b892e968164b7a0498ddc5746cdf4e985700b902128421bb5cec1080a6ee36", size = 216694, upload-time = "2025-11-10T00:11:34.296Z" }, + { url = "https://files.pythonhosted.org/packages/4a/f6/b6f9764d90c0ce1bce8d995649fa307fff21f4727b8d950fa2843b7b0de5/coverage-7.11.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f761dbcf45e9416ec4698e1a7649248005f0064ce3523a47402d1bff4af2779e", size = 217065, upload-time = "2025-11-10T00:11:36.281Z" }, + { url = "https://files.pythonhosted.org/packages/a5/8d/a12cb424063019fd077b5be474258a0ed8369b92b6d0058e673f0a945982/coverage-7.11.3-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1410bac9e98afd9623f53876fae7d8a5db9f5a0ac1c9e7c5188463cb4b3212e2", size = 248062, upload-time = "2025-11-10T00:11:37.903Z" }, + { url = "https://files.pythonhosted.org/packages/7f/9c/dab1a4e8e75ce053d14259d3d7485d68528a662e286e184685ea49e71156/coverage-7.11.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:004cdcea3457c0ea3233622cd3464c1e32ebba9b41578421097402bee6461b63", size = 250657, upload-time = "2025-11-10T00:11:39.509Z" }, + { url = "https://files.pythonhosted.org/packages/3f/89/a14f256438324f33bae36f9a1a7137729bf26b0a43f5eda60b147ec7c8c7/coverage-7.11.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8f067ada2c333609b52835ca4d4868645d3b63ac04fb2b9a658c55bba7f667d3", size = 251900, upload-time = "2025-11-10T00:11:41.372Z" }, + { url = "https://files.pythonhosted.org/packages/04/07/75b0d476eb349f1296486b1418b44f2d8780cc8db47493de3755e5340076/coverage-7.11.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:07bc7745c945a6d95676953e86ba7cebb9f11de7773951c387f4c07dc76d03f5", size = 248254, upload-time = "2025-11-10T00:11:43.27Z" }, + { url = "https://files.pythonhosted.org/packages/5a/4b/0c486581fa72873489ca092c52792d008a17954aa352809a7cbe6cf0bf07/coverage-7.11.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8bba7e4743e37484ae17d5c3b8eb1ce78b564cb91b7ace2e2182b25f0f764cb5", size = 250041, upload-time = "2025-11-10T00:11:45.274Z" }, + { url = "https://files.pythonhosted.org/packages/af/a3/0059dafb240ae3e3291f81b8de00e9c511d3dd41d687a227dd4b529be591/coverage-7.11.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:fbffc22d80d86fbe456af9abb17f7a7766e7b2101f7edaacc3535501691563f7", size = 248004, upload-time = "2025-11-10T00:11:46.93Z" }, + { url = "https://files.pythonhosted.org/packages/83/93/967d9662b1eb8c7c46917dcc7e4c1875724ac3e73c3cb78e86d7a0ac719d/coverage-7.11.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:0dba4da36730e384669e05b765a2c49f39514dd3012fcc0398dd66fba8d746d5", size = 247828, upload-time = "2025-11-10T00:11:48.563Z" }, + { url = "https://files.pythonhosted.org/packages/4c/1c/5077493c03215701e212767e470b794548d817dfc6247a4718832cc71fac/coverage-7.11.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ae12fe90b00b71a71b69f513773310782ce01d5f58d2ceb2b7c595ab9d222094", size = 249588, upload-time = "2025-11-10T00:11:50.581Z" }, + { url = "https://files.pythonhosted.org/packages/7f/a5/77f64de461016e7da3e05d7d07975c89756fe672753e4cf74417fc9b9052/coverage-7.11.3-cp313-cp313-win32.whl", hash = "sha256:12d821de7408292530b0d241468b698bce18dd12ecaf45316149f53877885f8c", size = 219223, upload-time = "2025-11-10T00:11:52.184Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1c/ec51a3c1a59d225b44bdd3a4d463135b3159a535c2686fac965b698524f4/coverage-7.11.3-cp313-cp313-win_amd64.whl", hash = "sha256:6bb599052a974bb6cedfa114f9778fedfad66854107cf81397ec87cb9b8fbcf2", size = 220033, upload-time = "2025-11-10T00:11:53.871Z" }, + { url = "https://files.pythonhosted.org/packages/01/ec/e0ce39746ed558564c16f2cc25fa95ce6fc9fa8bfb3b9e62855d4386b886/coverage-7.11.3-cp313-cp313-win_arm64.whl", hash = "sha256:bb9d7efdb063903b3fdf77caec7b77c3066885068bdc0d44bc1b0c171033f944", size = 218661, upload-time = "2025-11-10T00:11:55.597Z" }, + { url = "https://files.pythonhosted.org/packages/46/cb/483f130bc56cbbad2638248915d97b185374d58b19e3cc3107359715949f/coverage-7.11.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:fb58da65e3339b3dbe266b607bb936efb983d86b00b03eb04c4ad5b442c58428", size = 217389, upload-time = "2025-11-10T00:11:57.59Z" }, + { url = "https://files.pythonhosted.org/packages/cb/ae/81f89bae3afef75553cf10e62feb57551535d16fd5859b9ee5a2a97ddd27/coverage-7.11.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8d16bbe566e16a71d123cd66382c1315fcd520c7573652a8074a8fe281b38c6a", size = 217742, upload-time = "2025-11-10T00:11:59.519Z" }, + { url = "https://files.pythonhosted.org/packages/db/6e/a0fb897041949888191a49c36afd5c6f5d9f5fd757e0b0cd99ec198a324b/coverage-7.11.3-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:a8258f10059b5ac837232c589a350a2df4a96406d6d5f2a09ec587cbdd539655", size = 259049, upload-time = "2025-11-10T00:12:01.592Z" }, + { url = "https://files.pythonhosted.org/packages/d9/b6/d13acc67eb402d91eb94b9bd60593411799aed09ce176ee8d8c0e39c94ca/coverage-7.11.3-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:4c5627429f7fbff4f4131cfdd6abd530734ef7761116811a707b88b7e205afd7", size = 261113, upload-time = "2025-11-10T00:12:03.639Z" }, + { url = "https://files.pythonhosted.org/packages/ea/07/a6868893c48191d60406df4356aa7f0f74e6de34ef1f03af0d49183e0fa1/coverage-7.11.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:465695268414e149bab754c54b0c45c8ceda73dd4a5c3ba255500da13984b16d", size = 263546, upload-time = "2025-11-10T00:12:05.485Z" }, + { url = "https://files.pythonhosted.org/packages/24/e5/28598f70b2c1098332bac47925806353b3313511d984841111e6e760c016/coverage-7.11.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:4ebcddfcdfb4c614233cff6e9a3967a09484114a8b2e4f2c7a62dc83676ba13f", size = 258260, upload-time = "2025-11-10T00:12:07.137Z" }, + { url = "https://files.pythonhosted.org/packages/0e/58/58e2d9e6455a4ed746a480c4b9cf96dc3cb2a6b8f3efbee5efd33ae24b06/coverage-7.11.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:13b2066303a1c1833c654d2af0455bb009b6e1727b3883c9964bc5c2f643c1d0", size = 261121, upload-time = "2025-11-10T00:12:09.138Z" }, + { url = "https://files.pythonhosted.org/packages/17/57/38803eefb9b0409934cbc5a14e3978f0c85cb251d2b6f6a369067a7105a0/coverage-7.11.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:d8750dd20362a1b80e3cf84f58013d4672f89663aee457ea59336df50fab6739", size = 258736, upload-time = "2025-11-10T00:12:11.195Z" }, + { url = "https://files.pythonhosted.org/packages/a8/f3/f94683167156e93677b3442be1d4ca70cb33718df32a2eea44a5898f04f6/coverage-7.11.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:ab6212e62ea0e1006531a2234e209607f360d98d18d532c2fa8e403c1afbdd71", size = 257625, upload-time = "2025-11-10T00:12:12.843Z" }, + { url = "https://files.pythonhosted.org/packages/87/ed/42d0bf1bc6bfa7d65f52299a31daaa866b4c11000855d753857fe78260ac/coverage-7.11.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a6b17c2b5e0b9bb7702449200f93e2d04cb04b1414c41424c08aa1e5d352da76", size = 259827, upload-time = "2025-11-10T00:12:15.128Z" }, + { url = "https://files.pythonhosted.org/packages/d3/76/5682719f5d5fbedb0c624c9851ef847407cae23362deb941f185f489c54e/coverage-7.11.3-cp313-cp313t-win32.whl", hash = "sha256:426559f105f644b69290ea414e154a0d320c3ad8a2bb75e62884731f69cf8e2c", size = 219897, upload-time = "2025-11-10T00:12:17.274Z" }, + { url = "https://files.pythonhosted.org/packages/10/e0/1da511d0ac3d39e6676fa6cc5ec35320bbf1cebb9b24e9ee7548ee4e931a/coverage-7.11.3-cp313-cp313t-win_amd64.whl", hash = "sha256:90a96fcd824564eae6137ec2563bd061d49a32944858d4bdbae5c00fb10e76ac", size = 220959, upload-time = "2025-11-10T00:12:19.292Z" }, + { url = "https://files.pythonhosted.org/packages/e5/9d/e255da6a04e9ec5f7b633c54c0fdfa221a9e03550b67a9c83217de12e96c/coverage-7.11.3-cp313-cp313t-win_arm64.whl", hash = "sha256:1e33d0bebf895c7a0905fcfaff2b07ab900885fc78bba2a12291a2cfbab014cc", size = 219234, upload-time = "2025-11-10T00:12:21.251Z" }, + { url = "https://files.pythonhosted.org/packages/84/d6/634ec396e45aded1772dccf6c236e3e7c9604bc47b816e928f32ce7987d1/coverage-7.11.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:fdc5255eb4815babcdf236fa1a806ccb546724c8a9b129fd1ea4a5448a0bf07c", size = 216746, upload-time = "2025-11-10T00:12:23.089Z" }, + { url = "https://files.pythonhosted.org/packages/28/76/1079547f9d46f9c7c7d0dad35b6873c98bc5aa721eeabceafabd722cd5e7/coverage-7.11.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:fe3425dc6021f906c6325d3c415e048e7cdb955505a94f1eb774dafc779ba203", size = 217077, upload-time = "2025-11-10T00:12:24.863Z" }, + { url = "https://files.pythonhosted.org/packages/2d/71/6ad80d6ae0d7cb743b9a98df8bb88b1ff3dc54491508a4a97549c2b83400/coverage-7.11.3-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:4ca5f876bf41b24378ee67c41d688155f0e54cdc720de8ef9ad6544005899240", size = 248122, upload-time = "2025-11-10T00:12:26.553Z" }, + { url = "https://files.pythonhosted.org/packages/20/1d/784b87270784b0b88e4beec9d028e8d58f73ae248032579c63ad2ac6f69a/coverage-7.11.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9061a3e3c92b27fd8036dafa26f25d95695b6aa2e4514ab16a254f297e664f83", size = 250638, upload-time = "2025-11-10T00:12:28.555Z" }, + { url = "https://files.pythonhosted.org/packages/f5/26/b6dd31e23e004e9de84d1a8672cd3d73e50f5dae65dbd0f03fa2cdde6100/coverage-7.11.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:abcea3b5f0dc44e1d01c27090bc32ce6ffb7aa665f884f1890710454113ea902", size = 251972, upload-time = "2025-11-10T00:12:30.246Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ef/f9c64d76faac56b82daa036b34d4fe9ab55eb37f22062e68e9470583e688/coverage-7.11.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:68c4eb92997dbaaf839ea13527be463178ac0ddd37a7ac636b8bc11a51af2428", size = 248147, upload-time = "2025-11-10T00:12:32.195Z" }, + { url = "https://files.pythonhosted.org/packages/b6/eb/5b666f90a8f8053bd264a1ce693d2edef2368e518afe70680070fca13ecd/coverage-7.11.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:149eccc85d48c8f06547534068c41d69a1a35322deaa4d69ba1561e2e9127e75", size = 249995, upload-time = "2025-11-10T00:12:33.969Z" }, + { url = "https://files.pythonhosted.org/packages/eb/7b/871e991ffb5d067f8e67ffb635dabba65b231d6e0eb724a4a558f4a702a5/coverage-7.11.3-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:08c0bcf932e47795c49f0406054824b9d45671362dfc4269e0bc6e4bff010704", size = 247948, upload-time = "2025-11-10T00:12:36.341Z" }, + { url = "https://files.pythonhosted.org/packages/0a/8b/ce454f0af9609431b06dbe5485fc9d1c35ddc387e32ae8e374f49005748b/coverage-7.11.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:39764c6167c82d68a2d8c97c33dba45ec0ad9172570860e12191416f4f8e6e1b", size = 247770, upload-time = "2025-11-10T00:12:38.167Z" }, + { url = "https://files.pythonhosted.org/packages/61/8f/79002cb58a61dfbd2085de7d0a46311ef2476823e7938db80284cedd2428/coverage-7.11.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:3224c7baf34e923ffc78cb45e793925539d640d42c96646db62dbd61bbcfa131", size = 249431, upload-time = "2025-11-10T00:12:40.354Z" }, + { url = "https://files.pythonhosted.org/packages/58/cc/d06685dae97468ed22999440f2f2f5060940ab0e7952a7295f236d98cce7/coverage-7.11.3-cp314-cp314-win32.whl", hash = "sha256:c713c1c528284d636cd37723b0b4c35c11190da6f932794e145fc40f8210a14a", size = 219508, upload-time = "2025-11-10T00:12:42.231Z" }, + { url = "https://files.pythonhosted.org/packages/5f/ed/770cd07706a3598c545f62d75adf2e5bd3791bffccdcf708ec383ad42559/coverage-7.11.3-cp314-cp314-win_amd64.whl", hash = "sha256:c381a252317f63ca0179d2c7918e83b99a4ff3101e1b24849b999a00f9cd4f86", size = 220325, upload-time = "2025-11-10T00:12:44.065Z" }, + { url = "https://files.pythonhosted.org/packages/ee/ac/6a1c507899b6fb1b9a56069954365f655956bcc648e150ce64c2b0ecbed8/coverage-7.11.3-cp314-cp314-win_arm64.whl", hash = "sha256:3e33a968672be1394eded257ec10d4acbb9af2ae263ba05a99ff901bb863557e", size = 218899, upload-time = "2025-11-10T00:12:46.18Z" }, + { url = "https://files.pythonhosted.org/packages/9a/58/142cd838d960cd740654d094f7b0300d7b81534bb7304437d2439fb685fb/coverage-7.11.3-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:f9c96a29c6d65bd36a91f5634fef800212dff69dacdb44345c4c9783943ab0df", size = 217471, upload-time = "2025-11-10T00:12:48.392Z" }, + { url = "https://files.pythonhosted.org/packages/bc/2c/2f44d39eb33e41ab3aba80571daad32e0f67076afcf27cb443f9e5b5a3ee/coverage-7.11.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2ec27a7a991d229213c8070d31e3ecf44d005d96a9edc30c78eaeafaa421c001", size = 217742, upload-time = "2025-11-10T00:12:50.182Z" }, + { url = "https://files.pythonhosted.org/packages/32/76/8ebc66c3c699f4de3174a43424c34c086323cd93c4930ab0f835731c443a/coverage-7.11.3-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:72c8b494bd20ae1c58528b97c4a67d5cfeafcb3845c73542875ecd43924296de", size = 259120, upload-time = "2025-11-10T00:12:52.451Z" }, + { url = "https://files.pythonhosted.org/packages/19/89/78a3302b9595f331b86e4f12dfbd9252c8e93d97b8631500888f9a3a2af7/coverage-7.11.3-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:60ca149a446da255d56c2a7a813b51a80d9497a62250532598d249b3cdb1a926", size = 261229, upload-time = "2025-11-10T00:12:54.667Z" }, + { url = "https://files.pythonhosted.org/packages/07/59/1a9c0844dadef2a6efac07316d9781e6c5a3f3ea7e5e701411e99d619bfd/coverage-7.11.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb5069074db19a534de3859c43eec78e962d6d119f637c41c8e028c5ab3f59dd", size = 263642, upload-time = "2025-11-10T00:12:56.841Z" }, + { url = "https://files.pythonhosted.org/packages/37/86/66c15d190a8e82eee777793cabde730640f555db3c020a179625a2ad5320/coverage-7.11.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac5d5329c9c942bbe6295f4251b135d860ed9f86acd912d418dce186de7c19ac", size = 258193, upload-time = "2025-11-10T00:12:58.687Z" }, + { url = "https://files.pythonhosted.org/packages/c7/c7/4a4aeb25cb6f83c3ec4763e5f7cc78da1c6d4ef9e22128562204b7f39390/coverage-7.11.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e22539b676fafba17f0a90ac725f029a309eb6e483f364c86dcadee060429d46", size = 261107, upload-time = "2025-11-10T00:13:00.502Z" }, + { url = "https://files.pythonhosted.org/packages/ed/91/b986b5035f23cf0272446298967ecdd2c3c0105ee31f66f7e6b6948fd7f8/coverage-7.11.3-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:2376e8a9c889016f25472c452389e98bc6e54a19570b107e27cde9d47f387b64", size = 258717, upload-time = "2025-11-10T00:13:02.747Z" }, + { url = "https://files.pythonhosted.org/packages/f0/c7/6c084997f5a04d050c513545d3344bfa17bd3b67f143f388b5757d762b0b/coverage-7.11.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:4234914b8c67238a3c4af2bba648dc716aa029ca44d01f3d51536d44ac16854f", size = 257541, upload-time = "2025-11-10T00:13:04.689Z" }, + { url = "https://files.pythonhosted.org/packages/3b/c5/38e642917e406930cb67941210a366ccffa767365c8f8d9ec0f465a8b218/coverage-7.11.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f0b4101e2b3c6c352ff1f70b3a6fcc7c17c1ab1a91ccb7a33013cb0782af9820", size = 259872, upload-time = "2025-11-10T00:13:06.559Z" }, + { url = "https://files.pythonhosted.org/packages/b7/67/5e812979d20c167f81dbf9374048e0193ebe64c59a3d93d7d947b07865fa/coverage-7.11.3-cp314-cp314t-win32.whl", hash = "sha256:305716afb19133762e8cf62745c46c4853ad6f9eeba54a593e373289e24ea237", size = 220289, upload-time = "2025-11-10T00:13:08.635Z" }, + { url = "https://files.pythonhosted.org/packages/24/3a/b72573802672b680703e0df071faadfab7dcd4d659aaaffc4626bc8bbde8/coverage-7.11.3-cp314-cp314t-win_amd64.whl", hash = "sha256:9245bd392572b9f799261c4c9e7216bafc9405537d0f4ce3ad93afe081a12dc9", size = 221398, upload-time = "2025-11-10T00:13:10.734Z" }, + { url = "https://files.pythonhosted.org/packages/f8/4e/649628f28d38bad81e4e8eb3f78759d20ac173e3c456ac629123815feb40/coverage-7.11.3-cp314-cp314t-win_arm64.whl", hash = "sha256:9a1d577c20b4334e5e814c3d5fe07fa4a8c3ae42a601945e8d7940bab811d0bd", size = 219435, upload-time = "2025-11-10T00:13:12.712Z" }, + { url = "https://files.pythonhosted.org/packages/19/8f/92bdd27b067204b99f396a1414d6342122f3e2663459baf787108a6b8b84/coverage-7.11.3-py3-none-any.whl", hash = "sha256:351511ae28e2509c8d8cae5311577ea7dd511ab8e746ffc8814a0896c3d33fbe", size = 208478, upload-time = "2025-11-10T00:13:14.908Z" }, +] + +[package.optional-dependencies] +toml = [ + { name = "tomli", marker = "python_full_version <= '3.11'" }, +] + +[[package]] +name = "cryptography" +version = "46.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9f/33/c00162f49c0e2fe8064a62cb92b93e50c74a72bc370ab92f86112b33ff62/cryptography-46.0.3.tar.gz", hash = "sha256:a8b17438104fed022ce745b362294d9ce35b4c2e45c1d958ad4a4b019285f4a1", size = 749258, upload-time = "2025-10-15T23:18:31.74Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/42/9c391dd801d6cf0d561b5890549d4b27bafcc53b39c31a817e69d87c625b/cryptography-46.0.3-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:109d4ddfadf17e8e7779c39f9b18111a09efb969a301a31e987416a0191ed93a", size = 7225004, upload-time = "2025-10-15T23:16:52.239Z" }, + { url = "https://files.pythonhosted.org/packages/1c/67/38769ca6b65f07461eb200e85fc1639b438bdc667be02cf7f2cd6a64601c/cryptography-46.0.3-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:09859af8466b69bc3c27bdf4f5d84a665e0f7ab5088412e9e2ec49758eca5cbc", size = 4296667, upload-time = "2025-10-15T23:16:54.369Z" }, + { url = "https://files.pythonhosted.org/packages/5c/49/498c86566a1d80e978b42f0d702795f69887005548c041636df6ae1ca64c/cryptography-46.0.3-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:01ca9ff2885f3acc98c29f1860552e37f6d7c7d013d7334ff2a9de43a449315d", size = 4450807, upload-time = "2025-10-15T23:16:56.414Z" }, + { url = "https://files.pythonhosted.org/packages/4b/0a/863a3604112174c8624a2ac3c038662d9e59970c7f926acdcfaed8d61142/cryptography-46.0.3-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:6eae65d4c3d33da080cff9c4ab1f711b15c1d9760809dad6ea763f3812d254cb", size = 4299615, upload-time = "2025-10-15T23:16:58.442Z" }, + { url = "https://files.pythonhosted.org/packages/64/02/b73a533f6b64a69f3cd3872acb6ebc12aef924d8d103133bb3ea750dc703/cryptography-46.0.3-cp311-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5bf0ed4490068a2e72ac03d786693adeb909981cc596425d09032d372bcc849", size = 4016800, upload-time = "2025-10-15T23:17:00.378Z" }, + { url = "https://files.pythonhosted.org/packages/25/d5/16e41afbfa450cde85a3b7ec599bebefaef16b5c6ba4ec49a3532336ed72/cryptography-46.0.3-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:5ecfccd2329e37e9b7112a888e76d9feca2347f12f37918facbb893d7bb88ee8", size = 4984707, upload-time = "2025-10-15T23:17:01.98Z" }, + { url = "https://files.pythonhosted.org/packages/c9/56/e7e69b427c3878352c2fb9b450bd0e19ed552753491d39d7d0a2f5226d41/cryptography-46.0.3-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a2c0cd47381a3229c403062f764160d57d4d175e022c1df84e168c6251a22eec", size = 4482541, upload-time = "2025-10-15T23:17:04.078Z" }, + { url = "https://files.pythonhosted.org/packages/78/f6/50736d40d97e8483172f1bb6e698895b92a223dba513b0ca6f06b2365339/cryptography-46.0.3-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:549e234ff32571b1f4076ac269fcce7a808d3bf98b76c8dd560e42dbc66d7d91", size = 4299464, upload-time = "2025-10-15T23:17:05.483Z" }, + { url = "https://files.pythonhosted.org/packages/00/de/d8e26b1a855f19d9994a19c702fa2e93b0456beccbcfe437eda00e0701f2/cryptography-46.0.3-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:c0a7bb1a68a5d3471880e264621346c48665b3bf1c3759d682fc0864c540bd9e", size = 4950838, upload-time = "2025-10-15T23:17:07.425Z" }, + { url = "https://files.pythonhosted.org/packages/8f/29/798fc4ec461a1c9e9f735f2fc58741b0daae30688f41b2497dcbc9ed1355/cryptography-46.0.3-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:10b01676fc208c3e6feeb25a8b83d81767e8059e1fe86e1dc62d10a3018fa926", size = 4481596, upload-time = "2025-10-15T23:17:09.343Z" }, + { url = "https://files.pythonhosted.org/packages/15/8d/03cd48b20a573adfff7652b76271078e3045b9f49387920e7f1f631d125e/cryptography-46.0.3-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0abf1ffd6e57c67e92af68330d05760b7b7efb243aab8377e583284dbab72c71", size = 4426782, upload-time = "2025-10-15T23:17:11.22Z" }, + { url = "https://files.pythonhosted.org/packages/fa/b1/ebacbfe53317d55cf33165bda24c86523497a6881f339f9aae5c2e13e57b/cryptography-46.0.3-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a04bee9ab6a4da801eb9b51f1b708a1b5b5c9eb48c03f74198464c66f0d344ac", size = 4698381, upload-time = "2025-10-15T23:17:12.829Z" }, + { url = "https://files.pythonhosted.org/packages/96/92/8a6a9525893325fc057a01f654d7efc2c64b9de90413adcf605a85744ff4/cryptography-46.0.3-cp311-abi3-win32.whl", hash = "sha256:f260d0d41e9b4da1ed1e0f1ce571f97fe370b152ab18778e9e8f67d6af432018", size = 3055988, upload-time = "2025-10-15T23:17:14.65Z" }, + { url = "https://files.pythonhosted.org/packages/7e/bf/80fbf45253ea585a1e492a6a17efcb93467701fa79e71550a430c5e60df0/cryptography-46.0.3-cp311-abi3-win_amd64.whl", hash = "sha256:a9a3008438615669153eb86b26b61e09993921ebdd75385ddd748702c5adfddb", size = 3514451, upload-time = "2025-10-15T23:17:16.142Z" }, + { url = "https://files.pythonhosted.org/packages/2e/af/9b302da4c87b0beb9db4e756386a7c6c5b8003cd0e742277888d352ae91d/cryptography-46.0.3-cp311-abi3-win_arm64.whl", hash = "sha256:5d7f93296ee28f68447397bf5198428c9aeeab45705a55d53a6343455dcb2c3c", size = 2928007, upload-time = "2025-10-15T23:17:18.04Z" }, + { url = "https://files.pythonhosted.org/packages/f5/e2/a510aa736755bffa9d2f75029c229111a1d02f8ecd5de03078f4c18d91a3/cryptography-46.0.3-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:00a5e7e87938e5ff9ff5447ab086a5706a957137e6e433841e9d24f38a065217", size = 7158012, upload-time = "2025-10-15T23:17:19.982Z" }, + { url = "https://files.pythonhosted.org/packages/73/dc/9aa866fbdbb95b02e7f9d086f1fccfeebf8953509b87e3f28fff927ff8a0/cryptography-46.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c8daeb2d2174beb4575b77482320303f3d39b8e81153da4f0fb08eb5fe86a6c5", size = 4288728, upload-time = "2025-10-15T23:17:21.527Z" }, + { url = "https://files.pythonhosted.org/packages/c5/fd/bc1daf8230eaa075184cbbf5f8cd00ba9db4fd32d63fb83da4671b72ed8a/cryptography-46.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:39b6755623145ad5eff1dab323f4eae2a32a77a7abef2c5089a04a3d04366715", size = 4435078, upload-time = "2025-10-15T23:17:23.042Z" }, + { url = "https://files.pythonhosted.org/packages/82/98/d3bd5407ce4c60017f8ff9e63ffee4200ab3e23fe05b765cab805a7db008/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:db391fa7c66df6762ee3f00c95a89e6d428f4d60e7abc8328f4fe155b5ac6e54", size = 4293460, upload-time = "2025-10-15T23:17:24.885Z" }, + { url = "https://files.pythonhosted.org/packages/26/e9/e23e7900983c2b8af7a08098db406cf989d7f09caea7897e347598d4cd5b/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:78a97cf6a8839a48c49271cdcbd5cf37ca2c1d6b7fdd86cc864f302b5e9bf459", size = 3995237, upload-time = "2025-10-15T23:17:26.449Z" }, + { url = "https://files.pythonhosted.org/packages/91/15/af68c509d4a138cfe299d0d7ddb14afba15233223ebd933b4bbdbc7155d3/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:dfb781ff7eaa91a6f7fd41776ec37c5853c795d3b358d4896fdbb5df168af422", size = 4967344, upload-time = "2025-10-15T23:17:28.06Z" }, + { url = "https://files.pythonhosted.org/packages/ca/e3/8643d077c53868b681af077edf6b3cb58288b5423610f21c62aadcbe99f4/cryptography-46.0.3-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:6f61efb26e76c45c4a227835ddeae96d83624fb0d29eb5df5b96e14ed1a0afb7", size = 4466564, upload-time = "2025-10-15T23:17:29.665Z" }, + { url = "https://files.pythonhosted.org/packages/0e/43/c1e8726fa59c236ff477ff2b5dc071e54b21e5a1e51aa2cee1676f1c986f/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:23b1a8f26e43f47ceb6d6a43115f33a5a37d57df4ea0ca295b780ae8546e8044", size = 4292415, upload-time = "2025-10-15T23:17:31.686Z" }, + { url = "https://files.pythonhosted.org/packages/42/f9/2f8fefdb1aee8a8e3256a0568cffc4e6d517b256a2fe97a029b3f1b9fe7e/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:b419ae593c86b87014b9be7396b385491ad7f320bde96826d0dd174459e54665", size = 4931457, upload-time = "2025-10-15T23:17:33.478Z" }, + { url = "https://files.pythonhosted.org/packages/79/30/9b54127a9a778ccd6d27c3da7563e9f2d341826075ceab89ae3b41bf5be2/cryptography-46.0.3-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:50fc3343ac490c6b08c0cf0d704e881d0d660be923fd3076db3e932007e726e3", size = 4466074, upload-time = "2025-10-15T23:17:35.158Z" }, + { url = "https://files.pythonhosted.org/packages/ac/68/b4f4a10928e26c941b1b6a179143af9f4d27d88fe84a6a3c53592d2e76bf/cryptography-46.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:22d7e97932f511d6b0b04f2bfd818d73dcd5928db509460aaf48384778eb6d20", size = 4420569, upload-time = "2025-10-15T23:17:37.188Z" }, + { url = "https://files.pythonhosted.org/packages/a3/49/3746dab4c0d1979888f125226357d3262a6dd40e114ac29e3d2abdf1ec55/cryptography-46.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:d55f3dffadd674514ad19451161118fd010988540cee43d8bc20675e775925de", size = 4681941, upload-time = "2025-10-15T23:17:39.236Z" }, + { url = "https://files.pythonhosted.org/packages/fd/30/27654c1dbaf7e4a3531fa1fc77986d04aefa4d6d78259a62c9dc13d7ad36/cryptography-46.0.3-cp314-cp314t-win32.whl", hash = "sha256:8a6e050cb6164d3f830453754094c086ff2d0b2f3a897a1d9820f6139a1f0914", size = 3022339, upload-time = "2025-10-15T23:17:40.888Z" }, + { url = "https://files.pythonhosted.org/packages/f6/30/640f34ccd4d2a1bc88367b54b926b781b5a018d65f404d409aba76a84b1c/cryptography-46.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:760f83faa07f8b64e9c33fc963d790a2edb24efb479e3520c14a45741cd9b2db", size = 3494315, upload-time = "2025-10-15T23:17:42.769Z" }, + { url = "https://files.pythonhosted.org/packages/ba/8b/88cc7e3bd0a8e7b861f26981f7b820e1f46aa9d26cc482d0feba0ecb4919/cryptography-46.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:516ea134e703e9fe26bcd1277a4b59ad30586ea90c365a87781d7887a646fe21", size = 2919331, upload-time = "2025-10-15T23:17:44.468Z" }, + { url = "https://files.pythonhosted.org/packages/fd/23/45fe7f376a7df8daf6da3556603b36f53475a99ce4faacb6ba2cf3d82021/cryptography-46.0.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:cb3d760a6117f621261d662bccc8ef5bc32ca673e037c83fbe565324f5c46936", size = 7218248, upload-time = "2025-10-15T23:17:46.294Z" }, + { url = "https://files.pythonhosted.org/packages/27/32/b68d27471372737054cbd34c84981f9edbc24fe67ca225d389799614e27f/cryptography-46.0.3-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4b7387121ac7d15e550f5cb4a43aef2559ed759c35df7336c402bb8275ac9683", size = 4294089, upload-time = "2025-10-15T23:17:48.269Z" }, + { url = "https://files.pythonhosted.org/packages/26/42/fa8389d4478368743e24e61eea78846a0006caffaf72ea24a15159215a14/cryptography-46.0.3-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:15ab9b093e8f09daab0f2159bb7e47532596075139dd74365da52ecc9cb46c5d", size = 4440029, upload-time = "2025-10-15T23:17:49.837Z" }, + { url = "https://files.pythonhosted.org/packages/5f/eb/f483db0ec5ac040824f269e93dd2bd8a21ecd1027e77ad7bdf6914f2fd80/cryptography-46.0.3-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:46acf53b40ea38f9c6c229599a4a13f0d46a6c3fa9ef19fc1a124d62e338dfa0", size = 4297222, upload-time = "2025-10-15T23:17:51.357Z" }, + { url = "https://files.pythonhosted.org/packages/fd/cf/da9502c4e1912cb1da3807ea3618a6829bee8207456fbbeebc361ec38ba3/cryptography-46.0.3-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:10ca84c4668d066a9878890047f03546f3ae0a6b8b39b697457b7757aaf18dbc", size = 4012280, upload-time = "2025-10-15T23:17:52.964Z" }, + { url = "https://files.pythonhosted.org/packages/6b/8f/9adb86b93330e0df8b3dcf03eae67c33ba89958fc2e03862ef1ac2b42465/cryptography-46.0.3-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:36e627112085bb3b81b19fed209c05ce2a52ee8b15d161b7c643a7d5a88491f3", size = 4978958, upload-time = "2025-10-15T23:17:54.965Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a0/5fa77988289c34bdb9f913f5606ecc9ada1adb5ae870bd0d1054a7021cc4/cryptography-46.0.3-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1000713389b75c449a6e979ffc7dcc8ac90b437048766cef052d4d30b8220971", size = 4473714, upload-time = "2025-10-15T23:17:56.754Z" }, + { url = "https://files.pythonhosted.org/packages/14/e5/fc82d72a58d41c393697aa18c9abe5ae1214ff6f2a5c18ac470f92777895/cryptography-46.0.3-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:b02cf04496f6576afffef5ddd04a0cb7d49cf6be16a9059d793a30b035f6b6ac", size = 4296970, upload-time = "2025-10-15T23:17:58.588Z" }, + { url = "https://files.pythonhosted.org/packages/78/06/5663ed35438d0b09056973994f1aec467492b33bd31da36e468b01ec1097/cryptography-46.0.3-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:71e842ec9bc7abf543b47cf86b9a743baa95f4677d22baa4c7d5c69e49e9bc04", size = 4940236, upload-time = "2025-10-15T23:18:00.897Z" }, + { url = "https://files.pythonhosted.org/packages/fc/59/873633f3f2dcd8a053b8dd1d38f783043b5fce589c0f6988bf55ef57e43e/cryptography-46.0.3-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:402b58fc32614f00980b66d6e56a5b4118e6cb362ae8f3fda141ba4689bd4506", size = 4472642, upload-time = "2025-10-15T23:18:02.749Z" }, + { url = "https://files.pythonhosted.org/packages/3d/39/8e71f3930e40f6877737d6f69248cf74d4e34b886a3967d32f919cc50d3b/cryptography-46.0.3-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ef639cb3372f69ec44915fafcd6698b6cc78fbe0c2ea41be867f6ed612811963", size = 4423126, upload-time = "2025-10-15T23:18:04.85Z" }, + { url = "https://files.pythonhosted.org/packages/cd/c7/f65027c2810e14c3e7268353b1681932b87e5a48e65505d8cc17c99e36ae/cryptography-46.0.3-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:3b51b8ca4f1c6453d8829e1eb7299499ca7f313900dd4d89a24b8b87c0a780d4", size = 4686573, upload-time = "2025-10-15T23:18:06.908Z" }, + { url = "https://files.pythonhosted.org/packages/0a/6e/1c8331ddf91ca4730ab3086a0f1be19c65510a33b5a441cb334e7a2d2560/cryptography-46.0.3-cp38-abi3-win32.whl", hash = "sha256:6276eb85ef938dc035d59b87c8a7dc559a232f954962520137529d77b18ff1df", size = 3036695, upload-time = "2025-10-15T23:18:08.672Z" }, + { url = "https://files.pythonhosted.org/packages/90/45/b0d691df20633eff80955a0fc7695ff9051ffce8b69741444bd9ed7bd0db/cryptography-46.0.3-cp38-abi3-win_amd64.whl", hash = "sha256:416260257577718c05135c55958b674000baef9a1c7d9e8f306ec60d71db850f", size = 3501720, upload-time = "2025-10-15T23:18:10.632Z" }, + { url = "https://files.pythonhosted.org/packages/e8/cb/2da4cc83f5edb9c3257d09e1e7ab7b23f049c7962cae8d842bbef0a9cec9/cryptography-46.0.3-cp38-abi3-win_arm64.whl", hash = "sha256:d89c3468de4cdc4f08a57e214384d0471911a3830fcdaf7a8cc587e42a866372", size = 2918740, upload-time = "2025-10-15T23:18:12.277Z" }, + { url = "https://files.pythonhosted.org/packages/06/8a/e60e46adab4362a682cf142c7dcb5bf79b782ab2199b0dcb81f55970807f/cryptography-46.0.3-pp311-pypy311_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7ce938a99998ed3c8aa7e7272dca1a610401ede816d36d0693907d863b10d9ea", size = 3698132, upload-time = "2025-10-15T23:18:17.056Z" }, + { url = "https://files.pythonhosted.org/packages/da/38/f59940ec4ee91e93d3311f7532671a5cef5570eb04a144bf203b58552d11/cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:191bb60a7be5e6f54e30ba16fdfae78ad3a342a0599eb4193ba88e3f3d6e185b", size = 4243992, upload-time = "2025-10-15T23:18:18.695Z" }, + { url = "https://files.pythonhosted.org/packages/b0/0c/35b3d92ddebfdfda76bb485738306545817253d0a3ded0bfe80ef8e67aa5/cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c70cc23f12726be8f8bc72e41d5065d77e4515efae3690326764ea1b07845cfb", size = 4409944, upload-time = "2025-10-15T23:18:20.597Z" }, + { url = "https://files.pythonhosted.org/packages/99/55/181022996c4063fc0e7666a47049a1ca705abb9c8a13830f074edb347495/cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:9394673a9f4de09e28b5356e7fff97d778f8abad85c9d5ac4a4b7e25a0de7717", size = 4242957, upload-time = "2025-10-15T23:18:22.18Z" }, + { url = "https://files.pythonhosted.org/packages/ba/af/72cd6ef29f9c5f731251acadaeb821559fe25f10852f44a63374c9ca08c1/cryptography-46.0.3-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:94cd0549accc38d1494e1f8de71eca837d0509d0d44bf11d158524b0e12cebf9", size = 4409447, upload-time = "2025-10-15T23:18:24.209Z" }, + { url = "https://files.pythonhosted.org/packages/0d/c3/e90f4a4feae6410f914f8ebac129b9ae7a8c92eb60a638012dde42030a9d/cryptography-46.0.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:6b5063083824e5509fdba180721d55909ffacccc8adbec85268b48439423d78c", size = 3438528, upload-time = "2025-10-15T23:18:26.227Z" }, +] + +[[package]] +name = "cyclopts" +version = "4.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "docstring-parser" }, + { name = "rich" }, + { name = "rich-rst" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8a/51/a67b17fac2530d22216a335bd10f48631412dd824013ea559ec236668f76/cyclopts-4.2.1.tar.gz", hash = "sha256:49bb4c35644e7a9658f706ade4cf1a9958834b2dca4425e2fafecf8a0537fac7", size = 148693, upload-time = "2025-10-31T14:30:58.681Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/1d/2b313e157c9c7bba319e42f464d15073d32a81ac4827bdc5b7de38832b3e/cyclopts-4.2.1-py3-none-any.whl", hash = "sha256:17a801faa814988b0307385ef8aaeb6b14b4d64473015a2d66bde9ea13f14d9c", size = 184333, upload-time = "2025-10-31T14:30:57.581Z" }, +] + +[[package]] +name = "diskcache" +version = "5.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3f/21/1c1ffc1a039ddcc459db43cc108658f32c57d271d7289a2794e401d0fdb6/diskcache-5.6.3.tar.gz", hash = "sha256:2c3a3fa2743d8535d832ec61c2054a1641f41775aa7c556758a109941e33e4fc", size = 67916, upload-time = "2023-08-31T06:12:00.316Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/27/4570e78fc0bf5ea0ca45eb1de3818a23787af9b390c0b0a0033a1b8236f9/diskcache-5.6.3-py3-none-any.whl", hash = "sha256:5e31b2d5fbad117cc363ebaf6b689474db18a1f6438bc82358b024abd4c2ca19", size = 45550, upload-time = "2023-08-31T06:11:58.822Z" }, +] + +[[package]] +name = "dnspython" +version = "2.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/8b/57666417c0f90f08bcafa776861060426765fdb422eb10212086fb811d26/dnspython-2.8.0.tar.gz", hash = "sha256:181d3c6996452cb1189c4046c61599b84a5a86e099562ffde77d26984ff26d0f", size = 368251, upload-time = "2025-09-07T18:58:00.022Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl", hash = "sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af", size = 331094, upload-time = "2025-09-07T18:57:58.071Z" }, +] + +[[package]] +name = "docstring-parser" +version = "0.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/9d/c3b43da9515bd270df0f80548d9944e389870713cc1fe2b8fb35fe2bcefd/docstring_parser-0.17.0.tar.gz", hash = "sha256:583de4a309722b3315439bb31d64ba3eebada841f2e2cee23b99df001434c912", size = 27442, upload-time = "2025-07-21T07:35:01.868Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/55/e2/2537ebcff11c1ee1ff17d8d0b6f4db75873e3b0fb32c2d4a2ee31ecb310a/docstring_parser-0.17.0-py3-none-any.whl", hash = "sha256:cf2569abd23dce8099b300f9b4fa8191e9582dda731fd533daf54c4551658708", size = 36896, upload-time = "2025-07-21T07:35:00.684Z" }, +] + +[[package]] +name = "docutils" +version = "0.22.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4a/c0/89fe6215b443b919cb98a5002e107cb5026854ed1ccb6b5833e0768419d1/docutils-0.22.2.tar.gz", hash = "sha256:9fdb771707c8784c8f2728b67cb2c691305933d68137ef95a75db5f4dfbc213d", size = 2289092, upload-time = "2025-09-20T17:55:47.994Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/dd/f95350e853a4468ec37478414fc04ae2d61dad7a947b3015c3dcc51a09b9/docutils-0.22.2-py3-none-any.whl", hash = "sha256:b0e98d679283fc3bb0ead8a5da7f501baa632654e7056e9c5846842213d674d8", size = 632667, upload-time = "2025-09-20T17:55:43.052Z" }, +] + +[[package]] +name = "email-validator" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dnspython" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f5/22/900cb125c76b7aaa450ce02fd727f452243f2e91a61af068b40adba60ea9/email_validator-2.3.0.tar.gz", hash = "sha256:9fc05c37f2f6cf439ff414f8fc46d917929974a82244c20eb10231ba60c54426", size = 51238, upload-time = "2025-08-26T13:09:06.831Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/15/545e2b6cf2e3be84bc1ed85613edd75b8aea69807a71c26f4ca6a9258e82/email_validator-2.3.0-py3-none-any.whl", hash = "sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4", size = 35604, upload-time = "2025-08-26T13:09:05.858Z" }, +] + +[[package]] +name = "exceptiongroup" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749, upload-time = "2025-05-10T17:42:51.123Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10", size = 16674, upload-time = "2025-05-10T17:42:49.33Z" }, +] + +[[package]] +name = "fastmcp" +version = "2.13.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "authlib" }, + { name = "cyclopts" }, + { name = "exceptiongroup" }, + { name = "httpx" }, + { name = "jsonschema-path" }, + { name = "mcp" }, + { name = "openapi-pydantic" }, + { name = "platformdirs" }, + { name = "py-key-value-aio", extra = ["disk", "keyring", "memory"] }, + { name = "pydantic", extra = ["email"] }, + { name = "pyperclip" }, + { name = "python-dotenv" }, + { name = "rich" }, + { name = "websockets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1b/74/584a152bcd174c99ddf3cfdd7e86ec4a6c696fb190a907c2a2ec9056bda2/fastmcp-2.13.0.2.tar.gz", hash = "sha256:d35386561b6f3cde195ba2b5892dc89b8919a721e6b39b98e7a16f9a7c0b8e8b", size = 7762083, upload-time = "2025-10-28T13:56:21.702Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/c6/95eacd687cfab64fec13bfb64e6c6e7da13d01ecd4cb7d7e991858a08119/fastmcp-2.13.0.2-py3-none-any.whl", hash = "sha256:eb381eb073a101aabbc0ac44b05e23fef0cd1619344b7703115c825c8755fa1c", size = 367511, upload-time = "2025-10-28T13:56:18.83Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, +] + +[[package]] +name = "httpx-sse" +version = "0.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/4c/751061ffa58615a32c31b2d82e8482be8dd4a89154f003147acee90f2be9/httpx_sse-0.4.3.tar.gz", hash = "sha256:9b1ed0127459a66014aec3c56bebd93da3c1bc8bb6618c8082039a44889a755d", size = 15943, upload-time = "2025-10-10T21:48:22.271Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/fd/6668e5aec43ab844de6fc74927e155a3b37bf40d7c3790e49fc0406b6578/httpx_sse-0.4.3-py3-none-any.whl", hash = "sha256:0ac1c9fe3c0afad2e0ebb25a934a59f4c7823b60792691f779fad2c5568830fc", size = 8960, upload-time = "2025-10-10T21:48:21.158Z" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, +] + +[[package]] +name = "importlib-metadata" +version = "8.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "zipp" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000", size = 56641, upload-time = "2025-04-27T15:29:01.736Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/b0/36bd937216ec521246249be3bf9855081de4c5e06a0c9b4219dbeda50373/importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd", size = 27656, upload-time = "2025-04-27T15:29:00.214Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, +] + +[[package]] +name = "jaraco-classes" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", size = 11780, upload-time = "2024-03-31T07:27:36.643Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777, upload-time = "2024-03-31T07:27:34.792Z" }, +] + +[[package]] +name = "jaraco-context" +version = "6.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "backports-tarfile", marker = "python_full_version < '3.12'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/ad/f3777b81bf0b6e7bc7514a1656d3e637b2e8e15fab2ce3235730b3e7a4e6/jaraco_context-6.0.1.tar.gz", hash = "sha256:9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3", size = 13912, upload-time = "2024-08-20T03:39:27.358Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/db/0c52c4cf5e4bd9f5d7135ec7669a3a767af21b3a308e1ed3674881e52b62/jaraco.context-6.0.1-py3-none-any.whl", hash = "sha256:f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4", size = 6825, upload-time = "2024-08-20T03:39:25.966Z" }, +] + +[[package]] +name = "jaraco-functools" +version = "4.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f7/ed/1aa2d585304ec07262e1a83a9889880701079dde796ac7b1d1826f40c63d/jaraco_functools-4.3.0.tar.gz", hash = "sha256:cfd13ad0dd2c47a3600b439ef72d8615d482cedcff1632930d6f28924d92f294", size = 19755, upload-time = "2025-08-18T20:05:09.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/09/726f168acad366b11e420df31bf1c702a54d373a83f968d94141a8c3fde0/jaraco_functools-4.3.0-py3-none-any.whl", hash = "sha256:227ff8ed6f7b8f62c56deff101545fa7543cf2c8e7b82a7c2116e672f29c26e8", size = 10408, upload-time = "2025-08-18T20:05:08.69Z" }, +] + +[[package]] +name = "jeepney" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz", hash = "sha256:cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732", size = 106758, upload-time = "2025-02-27T18:51:01.684Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010, upload-time = "2025-02-27T18:51:00.104Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.25.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/74/69/f7185de793a29082a9f3c7728268ffb31cb5095131a9c139a74078e27336/jsonschema-4.25.1.tar.gz", hash = "sha256:e4a9655ce0da0c0b67a085847e00a3a51449e1157f4f75e9fb5aa545e122eb85", size = 357342, upload-time = "2025-08-18T17:03:50.038Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/9c/8c95d856233c1f82500c2450b8c68576b4cf1c871db3afac5c34ff84e6fd/jsonschema-4.25.1-py3-none-any.whl", hash = "sha256:3fba0169e345c7175110351d456342c364814cfcf3b964ba4587f22915230a63", size = 90040, upload-time = "2025-08-18T17:03:48.373Z" }, +] + +[[package]] +name = "jsonschema-path" +version = "0.3.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pathable" }, + { name = "pyyaml" }, + { name = "referencing" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6e/45/41ebc679c2a4fced6a722f624c18d658dee42612b83ea24c1caf7c0eb3a8/jsonschema_path-0.3.4.tar.gz", hash = "sha256:8365356039f16cc65fddffafda5f58766e34bebab7d6d105616ab52bc4297001", size = 11159, upload-time = "2025-01-24T14:33:16.547Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/58/3485da8cb93d2f393bce453adeef16896751f14ba3e2024bc21dc9597646/jsonschema_path-0.3.4-py3-none-any.whl", hash = "sha256:f502191fdc2b22050f9a81c9237be9d27145b9001c55842bece5e94e382e52f8", size = 14810, upload-time = "2025-01-24T14:33:14.652Z" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "keyring" +version = "25.6.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "importlib-metadata", marker = "python_full_version < '3.12'" }, + { name = "jaraco-classes" }, + { name = "jaraco-context" }, + { name = "jaraco-functools" }, + { name = "jeepney", marker = "sys_platform == 'linux'" }, + { name = "pywin32-ctypes", marker = "sys_platform == 'win32'" }, + { name = "secretstorage", marker = "sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/70/09/d904a6e96f76ff214be59e7aa6ef7190008f52a0ab6689760a98de0bf37d/keyring-25.6.0.tar.gz", hash = "sha256:0b39998aa941431eb3d9b0d4b2460bc773b9df6fed7621c2dfb291a7e0187a66", size = 62750, upload-time = "2024-12-25T15:26:45.782Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/32/da7f44bcb1105d3e88a0b74ebdca50c59121d2ddf71c9e34ba47df7f3a56/keyring-25.6.0-py3-none-any.whl", hash = "sha256:552a3f7af126ece7ed5c89753650eec89c7eaae8617d0aa4d9ad2b75111266bd", size = 39085, upload-time = "2024-12-25T15:26:44.377Z" }, +] + +[[package]] +name = "markdown-it-py" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, +] + +[[package]] +name = "mcp" +version = "1.20.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "httpx" }, + { name = "httpx-sse" }, + { name = "jsonschema" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "pyjwt", extra = ["crypto"] }, + { name = "python-multipart" }, + { name = "pywin32", marker = "sys_platform == 'win32'" }, + { name = "sse-starlette" }, + { name = "starlette" }, + { name = "uvicorn", marker = "sys_platform != 'emscripten'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f8/22/fae38092e6c2995c03232635028510d77e7decff31b4ae79dfa0ba99c635/mcp-1.20.0.tar.gz", hash = "sha256:9ccc09eaadbfbcbbdab1c9723cfe2e0d1d9e324d7d3ce7e332ef90b09ed35177", size = 451377, upload-time = "2025-10-30T22:14:53.421Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/00/76fc92f4892d47fecb37131d0e95ea69259f077d84c68f6793a0d96cfe80/mcp-1.20.0-py3-none-any.whl", hash = "sha256:d0dc06f93653f7432ff89f694721c87f79876b6f93741bf628ad1e48f7ac5e5d", size = 173136, upload-time = "2025-10-30T22:14:51.078Z" }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, +] + +[[package]] +name = "more-itertools" +version = "10.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431, upload-time = "2025-09-02T15:23:11.018Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667, upload-time = "2025-09-02T15:23:09.635Z" }, +] + +[[package]] +name = "multidict" +version = "6.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/80/1e/5492c365f222f907de1039b91f922b93fa4f764c713ee858d235495d8f50/multidict-6.7.0.tar.gz", hash = "sha256:c6e99d9a65ca282e578dfea819cfa9c0a62b2499d8677392e09feaf305e9e6f5", size = 101834, upload-time = "2025-10-06T14:52:30.657Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/9e/5c727587644d67b2ed479041e4b1c58e30afc011e3d45d25bbe35781217c/multidict-6.7.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4d409aa42a94c0b3fa617708ef5276dfe81012ba6753a0370fcc9d0195d0a1fc", size = 76604, upload-time = "2025-10-06T14:48:54.277Z" }, + { url = "https://files.pythonhosted.org/packages/17/e4/67b5c27bd17c085a5ea8f1ec05b8a3e5cba0ca734bfcad5560fb129e70ca/multidict-6.7.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:14c9e076eede3b54c636f8ce1c9c252b5f057c62131211f0ceeec273810c9721", size = 44715, upload-time = "2025-10-06T14:48:55.445Z" }, + { url = "https://files.pythonhosted.org/packages/4d/e1/866a5d77be6ea435711bef2a4291eed11032679b6b28b56b4776ab06ba3e/multidict-6.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4c09703000a9d0fa3c3404b27041e574cc7f4df4c6563873246d0e11812a94b6", size = 44332, upload-time = "2025-10-06T14:48:56.706Z" }, + { url = "https://files.pythonhosted.org/packages/31/61/0c2d50241ada71ff61a79518db85ada85fdabfcf395d5968dae1cbda04e5/multidict-6.7.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:a265acbb7bb33a3a2d626afbe756371dce0279e7b17f4f4eda406459c2b5ff1c", size = 245212, upload-time = "2025-10-06T14:48:58.042Z" }, + { url = "https://files.pythonhosted.org/packages/ac/e0/919666a4e4b57fff1b57f279be1c9316e6cdc5de8a8b525d76f6598fefc7/multidict-6.7.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:51cb455de290ae462593e5b1cb1118c5c22ea7f0d3620d9940bf695cea5a4bd7", size = 246671, upload-time = "2025-10-06T14:49:00.004Z" }, + { url = "https://files.pythonhosted.org/packages/a1/cc/d027d9c5a520f3321b65adea289b965e7bcbd2c34402663f482648c716ce/multidict-6.7.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:db99677b4457c7a5c5a949353e125ba72d62b35f74e26da141530fbb012218a7", size = 225491, upload-time = "2025-10-06T14:49:01.393Z" }, + { url = "https://files.pythonhosted.org/packages/75/c4/bbd633980ce6155a28ff04e6a6492dd3335858394d7bb752d8b108708558/multidict-6.7.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f470f68adc395e0183b92a2f4689264d1ea4b40504a24d9882c27375e6662bb9", size = 257322, upload-time = "2025-10-06T14:49:02.745Z" }, + { url = "https://files.pythonhosted.org/packages/4c/6d/d622322d344f1f053eae47e033b0b3f965af01212de21b10bcf91be991fb/multidict-6.7.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0db4956f82723cc1c270de9c6e799b4c341d327762ec78ef82bb962f79cc07d8", size = 254694, upload-time = "2025-10-06T14:49:04.15Z" }, + { url = "https://files.pythonhosted.org/packages/a8/9f/78f8761c2705d4c6d7516faed63c0ebdac569f6db1bef95e0d5218fdc146/multidict-6.7.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3e56d780c238f9e1ae66a22d2adf8d16f485381878250db8d496623cd38b22bd", size = 246715, upload-time = "2025-10-06T14:49:05.967Z" }, + { url = "https://files.pythonhosted.org/packages/78/59/950818e04f91b9c2b95aab3d923d9eabd01689d0dcd889563988e9ea0fd8/multidict-6.7.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9d14baca2ee12c1a64740d4531356ba50b82543017f3ad6de0deb943c5979abb", size = 243189, upload-time = "2025-10-06T14:49:07.37Z" }, + { url = "https://files.pythonhosted.org/packages/7a/3d/77c79e1934cad2ee74991840f8a0110966d9599b3af95964c0cd79bb905b/multidict-6.7.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:295a92a76188917c7f99cda95858c822f9e4aae5824246bba9b6b44004ddd0a6", size = 237845, upload-time = "2025-10-06T14:49:08.759Z" }, + { url = "https://files.pythonhosted.org/packages/63/1b/834ce32a0a97a3b70f86437f685f880136677ac00d8bce0027e9fd9c2db7/multidict-6.7.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:39f1719f57adbb767ef592a50ae5ebb794220d1188f9ca93de471336401c34d2", size = 246374, upload-time = "2025-10-06T14:49:10.574Z" }, + { url = "https://files.pythonhosted.org/packages/23/ef/43d1c3ba205b5dec93dc97f3fba179dfa47910fc73aaaea4f7ceb41cec2a/multidict-6.7.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:0a13fb8e748dfc94749f622de065dd5c1def7e0d2216dba72b1d8069a389c6ff", size = 253345, upload-time = "2025-10-06T14:49:12.331Z" }, + { url = "https://files.pythonhosted.org/packages/6b/03/eaf95bcc2d19ead522001f6a650ef32811aa9e3624ff0ad37c445c7a588c/multidict-6.7.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e3aa16de190d29a0ea1b48253c57d99a68492c8dd8948638073ab9e74dc9410b", size = 246940, upload-time = "2025-10-06T14:49:13.821Z" }, + { url = "https://files.pythonhosted.org/packages/e8/df/ec8a5fd66ea6cd6f525b1fcbb23511b033c3e9bc42b81384834ffa484a62/multidict-6.7.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a048ce45dcdaaf1defb76b2e684f997fb5abf74437b6cb7b22ddad934a964e34", size = 242229, upload-time = "2025-10-06T14:49:15.603Z" }, + { url = "https://files.pythonhosted.org/packages/8a/a2/59b405d59fd39ec86d1142630e9049243015a5f5291ba49cadf3c090c541/multidict-6.7.0-cp311-cp311-win32.whl", hash = "sha256:a90af66facec4cebe4181b9e62a68be65e45ac9b52b67de9eec118701856e7ff", size = 41308, upload-time = "2025-10-06T14:49:16.871Z" }, + { url = "https://files.pythonhosted.org/packages/32/0f/13228f26f8b882c34da36efa776c3b7348455ec383bab4a66390e42963ae/multidict-6.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:95b5ffa4349df2887518bb839409bcf22caa72d82beec453216802f475b23c81", size = 46037, upload-time = "2025-10-06T14:49:18.457Z" }, + { url = "https://files.pythonhosted.org/packages/84/1f/68588e31b000535a3207fd3c909ebeec4fb36b52c442107499c18a896a2a/multidict-6.7.0-cp311-cp311-win_arm64.whl", hash = "sha256:329aa225b085b6f004a4955271a7ba9f1087e39dcb7e65f6284a988264a63912", size = 43023, upload-time = "2025-10-06T14:49:19.648Z" }, + { url = "https://files.pythonhosted.org/packages/c2/9e/9f61ac18d9c8b475889f32ccfa91c9f59363480613fc807b6e3023d6f60b/multidict-6.7.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8a3862568a36d26e650a19bb5cbbba14b71789032aebc0423f8cc5f150730184", size = 76877, upload-time = "2025-10-06T14:49:20.884Z" }, + { url = "https://files.pythonhosted.org/packages/38/6f/614f09a04e6184f8824268fce4bc925e9849edfa654ddd59f0b64508c595/multidict-6.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:960c60b5849b9b4f9dcc9bea6e3626143c252c74113df2c1540aebce70209b45", size = 45467, upload-time = "2025-10-06T14:49:22.054Z" }, + { url = "https://files.pythonhosted.org/packages/b3/93/c4f67a436dd026f2e780c433277fff72be79152894d9fc36f44569cab1a6/multidict-6.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2049be98fb57a31b4ccf870bf377af2504d4ae35646a19037ec271e4c07998aa", size = 43834, upload-time = "2025-10-06T14:49:23.566Z" }, + { url = "https://files.pythonhosted.org/packages/7f/f5/013798161ca665e4a422afbc5e2d9e4070142a9ff8905e482139cd09e4d0/multidict-6.7.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:0934f3843a1860dd465d38895c17fce1f1cb37295149ab05cd1b9a03afacb2a7", size = 250545, upload-time = "2025-10-06T14:49:24.882Z" }, + { url = "https://files.pythonhosted.org/packages/71/2f/91dbac13e0ba94669ea5119ba267c9a832f0cb65419aca75549fcf09a3dc/multidict-6.7.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b3e34f3a1b8131ba06f1a73adab24f30934d148afcd5f5de9a73565a4404384e", size = 258305, upload-time = "2025-10-06T14:49:26.778Z" }, + { url = "https://files.pythonhosted.org/packages/ef/b0/754038b26f6e04488b48ac621f779c341338d78503fb45403755af2df477/multidict-6.7.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:efbb54e98446892590dc2458c19c10344ee9a883a79b5cec4bc34d6656e8d546", size = 242363, upload-time = "2025-10-06T14:49:28.562Z" }, + { url = "https://files.pythonhosted.org/packages/87/15/9da40b9336a7c9fa606c4cf2ed80a649dffeb42b905d4f63a1d7eb17d746/multidict-6.7.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a35c5fc61d4f51eb045061e7967cfe3123d622cd500e8868e7c0c592a09fedc4", size = 268375, upload-time = "2025-10-06T14:49:29.96Z" }, + { url = "https://files.pythonhosted.org/packages/82/72/c53fcade0cc94dfaad583105fd92b3a783af2091eddcb41a6d5a52474000/multidict-6.7.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29fe6740ebccba4175af1b9b87bf553e9c15cd5868ee967e010efcf94e4fd0f1", size = 269346, upload-time = "2025-10-06T14:49:31.404Z" }, + { url = "https://files.pythonhosted.org/packages/0d/e2/9baffdae21a76f77ef8447f1a05a96ec4bc0a24dae08767abc0a2fe680b8/multidict-6.7.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:123e2a72e20537add2f33a79e605f6191fba2afda4cbb876e35c1a7074298a7d", size = 256107, upload-time = "2025-10-06T14:49:32.974Z" }, + { url = "https://files.pythonhosted.org/packages/3c/06/3f06f611087dc60d65ef775f1fb5aca7c6d61c6db4990e7cda0cef9b1651/multidict-6.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b284e319754366c1aee2267a2036248b24eeb17ecd5dc16022095e747f2f4304", size = 253592, upload-time = "2025-10-06T14:49:34.52Z" }, + { url = "https://files.pythonhosted.org/packages/20/24/54e804ec7945b6023b340c412ce9c3f81e91b3bf5fa5ce65558740141bee/multidict-6.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:803d685de7be4303b5a657b76e2f6d1240e7e0a8aa2968ad5811fa2285553a12", size = 251024, upload-time = "2025-10-06T14:49:35.956Z" }, + { url = "https://files.pythonhosted.org/packages/14/48/011cba467ea0b17ceb938315d219391d3e421dfd35928e5dbdc3f4ae76ef/multidict-6.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c04a328260dfd5db8c39538f999f02779012268f54614902d0afc775d44e0a62", size = 251484, upload-time = "2025-10-06T14:49:37.631Z" }, + { url = "https://files.pythonhosted.org/packages/0d/2f/919258b43bb35b99fa127435cfb2d91798eb3a943396631ef43e3720dcf4/multidict-6.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8a19cdb57cd3df4cd865849d93ee14920fb97224300c88501f16ecfa2604b4e0", size = 263579, upload-time = "2025-10-06T14:49:39.502Z" }, + { url = "https://files.pythonhosted.org/packages/31/22/a0e884d86b5242b5a74cf08e876bdf299e413016b66e55511f7a804a366e/multidict-6.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b2fd74c52accced7e75de26023b7dccee62511a600e62311b918ec5c168fc2a", size = 259654, upload-time = "2025-10-06T14:49:41.32Z" }, + { url = "https://files.pythonhosted.org/packages/b2/e5/17e10e1b5c5f5a40f2fcbb45953c9b215f8a4098003915e46a93f5fcaa8f/multidict-6.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3e8bfdd0e487acf992407a140d2589fe598238eaeffa3da8448d63a63cd363f8", size = 251511, upload-time = "2025-10-06T14:49:46.021Z" }, + { url = "https://files.pythonhosted.org/packages/e3/9a/201bb1e17e7af53139597069c375e7b0dcbd47594604f65c2d5359508566/multidict-6.7.0-cp312-cp312-win32.whl", hash = "sha256:dd32a49400a2c3d52088e120ee00c1e3576cbff7e10b98467962c74fdb762ed4", size = 41895, upload-time = "2025-10-06T14:49:48.718Z" }, + { url = "https://files.pythonhosted.org/packages/46/e2/348cd32faad84eaf1d20cce80e2bb0ef8d312c55bca1f7fa9865e7770aaf/multidict-6.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:92abb658ef2d7ef22ac9f8bb88e8b6c3e571671534e029359b6d9e845923eb1b", size = 46073, upload-time = "2025-10-06T14:49:50.28Z" }, + { url = "https://files.pythonhosted.org/packages/25/ec/aad2613c1910dce907480e0c3aa306905830f25df2e54ccc9dea450cb5aa/multidict-6.7.0-cp312-cp312-win_arm64.whl", hash = "sha256:490dab541a6a642ce1a9d61a4781656b346a55c13038f0b1244653828e3a83ec", size = 43226, upload-time = "2025-10-06T14:49:52.304Z" }, + { url = "https://files.pythonhosted.org/packages/d2/86/33272a544eeb36d66e4d9a920602d1a2f57d4ebea4ef3cdfe5a912574c95/multidict-6.7.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:bee7c0588aa0076ce77c0ea5d19a68d76ad81fcd9fe8501003b9a24f9d4000f6", size = 76135, upload-time = "2025-10-06T14:49:54.26Z" }, + { url = "https://files.pythonhosted.org/packages/91/1c/eb97db117a1ebe46d457a3d235a7b9d2e6dcab174f42d1b67663dd9e5371/multidict-6.7.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7ef6b61cad77091056ce0e7ce69814ef72afacb150b7ac6a3e9470def2198159", size = 45117, upload-time = "2025-10-06T14:49:55.82Z" }, + { url = "https://files.pythonhosted.org/packages/f1/d8/6c3442322e41fb1dd4de8bd67bfd11cd72352ac131f6368315617de752f1/multidict-6.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9c0359b1ec12b1d6849c59f9d319610b7f20ef990a6d454ab151aa0e3b9f78ca", size = 43472, upload-time = "2025-10-06T14:49:57.048Z" }, + { url = "https://files.pythonhosted.org/packages/75/3f/e2639e80325af0b6c6febdf8e57cc07043ff15f57fa1ef808f4ccb5ac4cd/multidict-6.7.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cd240939f71c64bd658f186330603aac1a9a81bf6273f523fca63673cb7378a8", size = 249342, upload-time = "2025-10-06T14:49:58.368Z" }, + { url = "https://files.pythonhosted.org/packages/5d/cc/84e0585f805cbeaa9cbdaa95f9a3d6aed745b9d25700623ac89a6ecff400/multidict-6.7.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a60a4d75718a5efa473ebd5ab685786ba0c67b8381f781d1be14da49f1a2dc60", size = 257082, upload-time = "2025-10-06T14:49:59.89Z" }, + { url = "https://files.pythonhosted.org/packages/b0/9c/ac851c107c92289acbbf5cfb485694084690c1b17e555f44952c26ddc5bd/multidict-6.7.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:53a42d364f323275126aff81fb67c5ca1b7a04fda0546245730a55c8c5f24bc4", size = 240704, upload-time = "2025-10-06T14:50:01.485Z" }, + { url = "https://files.pythonhosted.org/packages/50/cc/5f93e99427248c09da95b62d64b25748a5f5c98c7c2ab09825a1d6af0e15/multidict-6.7.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3b29b980d0ddbecb736735ee5bef69bb2ddca56eff603c86f3f29a1128299b4f", size = 266355, upload-time = "2025-10-06T14:50:02.955Z" }, + { url = "https://files.pythonhosted.org/packages/ec/0c/2ec1d883ceb79c6f7f6d7ad90c919c898f5d1c6ea96d322751420211e072/multidict-6.7.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f8a93b1c0ed2d04b97a5e9336fd2d33371b9a6e29ab7dd6503d63407c20ffbaf", size = 267259, upload-time = "2025-10-06T14:50:04.446Z" }, + { url = "https://files.pythonhosted.org/packages/c6/2d/f0b184fa88d6630aa267680bdb8623fb69cb0d024b8c6f0d23f9a0f406d3/multidict-6.7.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9ff96e8815eecacc6645da76c413eb3b3d34cfca256c70b16b286a687d013c32", size = 254903, upload-time = "2025-10-06T14:50:05.98Z" }, + { url = "https://files.pythonhosted.org/packages/06/c9/11ea263ad0df7dfabcad404feb3c0dd40b131bc7f232d5537f2fb1356951/multidict-6.7.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:7516c579652f6a6be0e266aec0acd0db80829ca305c3d771ed898538804c2036", size = 252365, upload-time = "2025-10-06T14:50:07.511Z" }, + { url = "https://files.pythonhosted.org/packages/41/88/d714b86ee2c17d6e09850c70c9d310abac3d808ab49dfa16b43aba9d53fd/multidict-6.7.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:040f393368e63fb0f3330e70c26bfd336656bed925e5cbe17c9da839a6ab13ec", size = 250062, upload-time = "2025-10-06T14:50:09.074Z" }, + { url = "https://files.pythonhosted.org/packages/15/fe/ad407bb9e818c2b31383f6131ca19ea7e35ce93cf1310fce69f12e89de75/multidict-6.7.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b3bc26a951007b1057a1c543af845f1c7e3e71cc240ed1ace7bf4484aa99196e", size = 249683, upload-time = "2025-10-06T14:50:10.714Z" }, + { url = "https://files.pythonhosted.org/packages/8c/a4/a89abdb0229e533fb925e7c6e5c40201c2873efebc9abaf14046a4536ee6/multidict-6.7.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7b022717c748dd1992a83e219587aabe45980d88969f01b316e78683e6285f64", size = 261254, upload-time = "2025-10-06T14:50:12.28Z" }, + { url = "https://files.pythonhosted.org/packages/8d/aa/0e2b27bd88b40a4fb8dc53dd74eecac70edaa4c1dd0707eb2164da3675b3/multidict-6.7.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:9600082733859f00d79dee64effc7aef1beb26adb297416a4ad2116fd61374bd", size = 257967, upload-time = "2025-10-06T14:50:14.16Z" }, + { url = "https://files.pythonhosted.org/packages/d0/8e/0c67b7120d5d5f6d874ed85a085f9dc770a7f9d8813e80f44a9fec820bb7/multidict-6.7.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:94218fcec4d72bc61df51c198d098ce2b378e0ccbac41ddbed5ef44092913288", size = 250085, upload-time = "2025-10-06T14:50:15.639Z" }, + { url = "https://files.pythonhosted.org/packages/ba/55/b73e1d624ea4b8fd4dd07a3bb70f6e4c7c6c5d9d640a41c6ffe5cdbd2a55/multidict-6.7.0-cp313-cp313-win32.whl", hash = "sha256:a37bd74c3fa9d00be2d7b8eca074dc56bd8077ddd2917a839bd989612671ed17", size = 41713, upload-time = "2025-10-06T14:50:17.066Z" }, + { url = "https://files.pythonhosted.org/packages/32/31/75c59e7d3b4205075b4c183fa4ca398a2daf2303ddf616b04ae6ef55cffe/multidict-6.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:30d193c6cc6d559db42b6bcec8a5d395d34d60c9877a0b71ecd7c204fcf15390", size = 45915, upload-time = "2025-10-06T14:50:18.264Z" }, + { url = "https://files.pythonhosted.org/packages/31/2a/8987831e811f1184c22bc2e45844934385363ee61c0a2dcfa8f71b87e608/multidict-6.7.0-cp313-cp313-win_arm64.whl", hash = "sha256:ea3334cabe4d41b7ccd01e4d349828678794edbc2d3ae97fc162a3312095092e", size = 43077, upload-time = "2025-10-06T14:50:19.853Z" }, + { url = "https://files.pythonhosted.org/packages/e8/68/7b3a5170a382a340147337b300b9eb25a9ddb573bcdfff19c0fa3f31ffba/multidict-6.7.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ad9ce259f50abd98a1ca0aa6e490b58c316a0fce0617f609723e40804add2c00", size = 83114, upload-time = "2025-10-06T14:50:21.223Z" }, + { url = "https://files.pythonhosted.org/packages/55/5c/3fa2d07c84df4e302060f555bbf539310980362236ad49f50eeb0a1c1eb9/multidict-6.7.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07f5594ac6d084cbb5de2df218d78baf55ef150b91f0ff8a21cc7a2e3a5a58eb", size = 48442, upload-time = "2025-10-06T14:50:22.871Z" }, + { url = "https://files.pythonhosted.org/packages/fc/56/67212d33239797f9bd91962bb899d72bb0f4c35a8652dcdb8ed049bef878/multidict-6.7.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0591b48acf279821a579282444814a2d8d0af624ae0bc600aa4d1b920b6e924b", size = 46885, upload-time = "2025-10-06T14:50:24.258Z" }, + { url = "https://files.pythonhosted.org/packages/46/d1/908f896224290350721597a61a69cd19b89ad8ee0ae1f38b3f5cd12ea2ac/multidict-6.7.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:749a72584761531d2b9467cfbdfd29487ee21124c304c4b6cb760d8777b27f9c", size = 242588, upload-time = "2025-10-06T14:50:25.716Z" }, + { url = "https://files.pythonhosted.org/packages/ab/67/8604288bbd68680eee0ab568fdcb56171d8b23a01bcd5cb0c8fedf6e5d99/multidict-6.7.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b4c3d199f953acd5b446bf7c0de1fe25d94e09e79086f8dc2f48a11a129cdf1", size = 249966, upload-time = "2025-10-06T14:50:28.192Z" }, + { url = "https://files.pythonhosted.org/packages/20/33/9228d76339f1ba51e3efef7da3ebd91964d3006217aae13211653193c3ff/multidict-6.7.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9fb0211dfc3b51efea2f349ec92c114d7754dd62c01f81c3e32b765b70c45c9b", size = 228618, upload-time = "2025-10-06T14:50:29.82Z" }, + { url = "https://files.pythonhosted.org/packages/f8/2d/25d9b566d10cab1c42b3b9e5b11ef79c9111eaf4463b8c257a3bd89e0ead/multidict-6.7.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a027ec240fe73a8d6281872690b988eed307cd7d91b23998ff35ff577ca688b5", size = 257539, upload-time = "2025-10-06T14:50:31.731Z" }, + { url = "https://files.pythonhosted.org/packages/b6/b1/8d1a965e6637fc33de3c0d8f414485c2b7e4af00f42cab3d84e7b955c222/multidict-6.7.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1d964afecdf3a8288789df2f5751dc0a8261138c3768d9af117ed384e538fad", size = 256345, upload-time = "2025-10-06T14:50:33.26Z" }, + { url = "https://files.pythonhosted.org/packages/ba/0c/06b5a8adbdeedada6f4fb8d8f193d44a347223b11939b42953eeb6530b6b/multidict-6.7.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:caf53b15b1b7df9fbd0709aa01409000a2b4dd03a5f6f5cc548183c7c8f8b63c", size = 247934, upload-time = "2025-10-06T14:50:34.808Z" }, + { url = "https://files.pythonhosted.org/packages/8f/31/b2491b5fe167ca044c6eb4b8f2c9f3b8a00b24c432c365358eadac5d7625/multidict-6.7.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:654030da3197d927f05a536a66186070e98765aa5142794c9904555d3a9d8fb5", size = 245243, upload-time = "2025-10-06T14:50:36.436Z" }, + { url = "https://files.pythonhosted.org/packages/61/1a/982913957cb90406c8c94f53001abd9eafc271cb3e70ff6371590bec478e/multidict-6.7.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:2090d3718829d1e484706a2f525e50c892237b2bf9b17a79b059cb98cddc2f10", size = 235878, upload-time = "2025-10-06T14:50:37.953Z" }, + { url = "https://files.pythonhosted.org/packages/be/c0/21435d804c1a1cf7a2608593f4d19bca5bcbd7a81a70b253fdd1c12af9c0/multidict-6.7.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:2d2cfeec3f6f45651b3d408c4acec0ebf3daa9bc8a112a084206f5db5d05b754", size = 243452, upload-time = "2025-10-06T14:50:39.574Z" }, + { url = "https://files.pythonhosted.org/packages/54/0a/4349d540d4a883863191be6eb9a928846d4ec0ea007d3dcd36323bb058ac/multidict-6.7.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:4ef089f985b8c194d341eb2c24ae6e7408c9a0e2e5658699c92f497437d88c3c", size = 252312, upload-time = "2025-10-06T14:50:41.612Z" }, + { url = "https://files.pythonhosted.org/packages/26/64/d5416038dbda1488daf16b676e4dbfd9674dde10a0cc8f4fc2b502d8125d/multidict-6.7.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e93a0617cd16998784bf4414c7e40f17a35d2350e5c6f0bd900d3a8e02bd3762", size = 246935, upload-time = "2025-10-06T14:50:43.972Z" }, + { url = "https://files.pythonhosted.org/packages/9f/8c/8290c50d14e49f35e0bd4abc25e1bc7711149ca9588ab7d04f886cdf03d9/multidict-6.7.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f0feece2ef8ebc42ed9e2e8c78fc4aa3cf455733b507c09ef7406364c94376c6", size = 243385, upload-time = "2025-10-06T14:50:45.648Z" }, + { url = "https://files.pythonhosted.org/packages/ef/a0/f83ae75e42d694b3fbad3e047670e511c138be747bc713cf1b10d5096416/multidict-6.7.0-cp313-cp313t-win32.whl", hash = "sha256:19a1d55338ec1be74ef62440ca9e04a2f001a04d0cc49a4983dc320ff0f3212d", size = 47777, upload-time = "2025-10-06T14:50:47.154Z" }, + { url = "https://files.pythonhosted.org/packages/dc/80/9b174a92814a3830b7357307a792300f42c9e94664b01dee8e457551fa66/multidict-6.7.0-cp313-cp313t-win_amd64.whl", hash = "sha256:3da4fb467498df97e986af166b12d01f05d2e04f978a9c1c680ea1988e0bc4b6", size = 53104, upload-time = "2025-10-06T14:50:48.851Z" }, + { url = "https://files.pythonhosted.org/packages/cc/28/04baeaf0428d95bb7a7bea0e691ba2f31394338ba424fb0679a9ed0f4c09/multidict-6.7.0-cp313-cp313t-win_arm64.whl", hash = "sha256:b4121773c49a0776461f4a904cdf6264c88e42218aaa8407e803ca8025872792", size = 45503, upload-time = "2025-10-06T14:50:50.16Z" }, + { url = "https://files.pythonhosted.org/packages/e2/b1/3da6934455dd4b261d4c72f897e3a5728eba81db59959f3a639245891baa/multidict-6.7.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3bab1e4aff7adaa34410f93b1f8e57c4b36b9af0426a76003f441ee1d3c7e842", size = 75128, upload-time = "2025-10-06T14:50:51.92Z" }, + { url = "https://files.pythonhosted.org/packages/14/2c/f069cab5b51d175a1a2cb4ccdf7a2c2dabd58aa5bd933fa036a8d15e2404/multidict-6.7.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:b8512bac933afc3e45fb2b18da8e59b78d4f408399a960339598374d4ae3b56b", size = 44410, upload-time = "2025-10-06T14:50:53.275Z" }, + { url = "https://files.pythonhosted.org/packages/42/e2/64bb41266427af6642b6b128e8774ed84c11b80a90702c13ac0a86bb10cc/multidict-6.7.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:79dcf9e477bc65414ebfea98ffd013cb39552b5ecd62908752e0e413d6d06e38", size = 43205, upload-time = "2025-10-06T14:50:54.911Z" }, + { url = "https://files.pythonhosted.org/packages/02/68/6b086fef8a3f1a8541b9236c594f0c9245617c29841f2e0395d979485cde/multidict-6.7.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:31bae522710064b5cbeddaf2e9f32b1abab70ac6ac91d42572502299e9953128", size = 245084, upload-time = "2025-10-06T14:50:56.369Z" }, + { url = "https://files.pythonhosted.org/packages/15/ee/f524093232007cd7a75c1d132df70f235cfd590a7c9eaccd7ff422ef4ae8/multidict-6.7.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4a0df7ff02397bb63e2fd22af2c87dfa39e8c7f12947bc524dbdc528282c7e34", size = 252667, upload-time = "2025-10-06T14:50:57.991Z" }, + { url = "https://files.pythonhosted.org/packages/02/a5/eeb3f43ab45878f1895118c3ef157a480db58ede3f248e29b5354139c2c9/multidict-6.7.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7a0222514e8e4c514660e182d5156a415c13ef0aabbd71682fc714e327b95e99", size = 233590, upload-time = "2025-10-06T14:50:59.589Z" }, + { url = "https://files.pythonhosted.org/packages/6a/1e/76d02f8270b97269d7e3dbd45644b1785bda457b474315f8cf999525a193/multidict-6.7.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2397ab4daaf2698eb51a76721e98db21ce4f52339e535725de03ea962b5a3202", size = 264112, upload-time = "2025-10-06T14:51:01.183Z" }, + { url = "https://files.pythonhosted.org/packages/76/0b/c28a70ecb58963847c2a8efe334904cd254812b10e535aefb3bcce513918/multidict-6.7.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8891681594162635948a636c9fe0ff21746aeb3dd5463f6e25d9bea3a8a39ca1", size = 261194, upload-time = "2025-10-06T14:51:02.794Z" }, + { url = "https://files.pythonhosted.org/packages/b4/63/2ab26e4209773223159b83aa32721b4021ffb08102f8ac7d689c943fded1/multidict-6.7.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18706cc31dbf402a7945916dd5cddf160251b6dab8a2c5f3d6d5a55949f676b3", size = 248510, upload-time = "2025-10-06T14:51:04.724Z" }, + { url = "https://files.pythonhosted.org/packages/93/cd/06c1fa8282af1d1c46fd55c10a7930af652afdce43999501d4d68664170c/multidict-6.7.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f844a1bbf1d207dd311a56f383f7eda2d0e134921d45751842d8235e7778965d", size = 248395, upload-time = "2025-10-06T14:51:06.306Z" }, + { url = "https://files.pythonhosted.org/packages/99/ac/82cb419dd6b04ccf9e7e61befc00c77614fc8134362488b553402ecd55ce/multidict-6.7.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:d4393e3581e84e5645506923816b9cc81f5609a778c7e7534054091acc64d1c6", size = 239520, upload-time = "2025-10-06T14:51:08.091Z" }, + { url = "https://files.pythonhosted.org/packages/fa/f3/a0f9bf09493421bd8716a362e0cd1d244f5a6550f5beffdd6b47e885b331/multidict-6.7.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:fbd18dc82d7bf274b37aa48d664534330af744e03bccf696d6f4c6042e7d19e7", size = 245479, upload-time = "2025-10-06T14:51:10.365Z" }, + { url = "https://files.pythonhosted.org/packages/8d/01/476d38fc73a212843f43c852b0eee266b6971f0e28329c2184a8df90c376/multidict-6.7.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:b6234e14f9314731ec45c42fc4554b88133ad53a09092cc48a88e771c125dadb", size = 258903, upload-time = "2025-10-06T14:51:12.466Z" }, + { url = "https://files.pythonhosted.org/packages/49/6d/23faeb0868adba613b817d0e69c5f15531b24d462af8012c4f6de4fa8dc3/multidict-6.7.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:08d4379f9744d8f78d98c8673c06e202ffa88296f009c71bbafe8a6bf847d01f", size = 252333, upload-time = "2025-10-06T14:51:14.48Z" }, + { url = "https://files.pythonhosted.org/packages/1e/cc/48d02ac22b30fa247f7dad82866e4b1015431092f4ba6ebc7e77596e0b18/multidict-6.7.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:9fe04da3f79387f450fd0061d4dd2e45a72749d31bf634aecc9e27f24fdc4b3f", size = 243411, upload-time = "2025-10-06T14:51:16.072Z" }, + { url = "https://files.pythonhosted.org/packages/4a/03/29a8bf5a18abf1fe34535c88adbdfa88c9fb869b5a3b120692c64abe8284/multidict-6.7.0-cp314-cp314-win32.whl", hash = "sha256:fbafe31d191dfa7c4c51f7a6149c9fb7e914dcf9ffead27dcfd9f1ae382b3885", size = 40940, upload-time = "2025-10-06T14:51:17.544Z" }, + { url = "https://files.pythonhosted.org/packages/82/16/7ed27b680791b939de138f906d5cf2b4657b0d45ca6f5dd6236fdddafb1a/multidict-6.7.0-cp314-cp314-win_amd64.whl", hash = "sha256:2f67396ec0310764b9222a1728ced1ab638f61aadc6226f17a71dd9324f9a99c", size = 45087, upload-time = "2025-10-06T14:51:18.875Z" }, + { url = "https://files.pythonhosted.org/packages/cd/3c/e3e62eb35a1950292fe39315d3c89941e30a9d07d5d2df42965ab041da43/multidict-6.7.0-cp314-cp314-win_arm64.whl", hash = "sha256:ba672b26069957ee369cfa7fc180dde1fc6f176eaf1e6beaf61fbebbd3d9c000", size = 42368, upload-time = "2025-10-06T14:51:20.225Z" }, + { url = "https://files.pythonhosted.org/packages/8b/40/cd499bd0dbc5f1136726db3153042a735fffd0d77268e2ee20d5f33c010f/multidict-6.7.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:c1dcc7524066fa918c6a27d61444d4ee7900ec635779058571f70d042d86ed63", size = 82326, upload-time = "2025-10-06T14:51:21.588Z" }, + { url = "https://files.pythonhosted.org/packages/13/8a/18e031eca251c8df76daf0288e6790561806e439f5ce99a170b4af30676b/multidict-6.7.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:27e0b36c2d388dc7b6ced3406671b401e84ad7eb0656b8f3a2f46ed0ce483718", size = 48065, upload-time = "2025-10-06T14:51:22.93Z" }, + { url = "https://files.pythonhosted.org/packages/40/71/5e6701277470a87d234e433fb0a3a7deaf3bcd92566e421e7ae9776319de/multidict-6.7.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2a7baa46a22e77f0988e3b23d4ede5513ebec1929e34ee9495be535662c0dfe2", size = 46475, upload-time = "2025-10-06T14:51:24.352Z" }, + { url = "https://files.pythonhosted.org/packages/fe/6a/bab00cbab6d9cfb57afe1663318f72ec28289ea03fd4e8236bb78429893a/multidict-6.7.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:7bf77f54997a9166a2f5675d1201520586439424c2511723a7312bdb4bcc034e", size = 239324, upload-time = "2025-10-06T14:51:25.822Z" }, + { url = "https://files.pythonhosted.org/packages/2a/5f/8de95f629fc22a7769ade8b41028e3e5a822c1f8904f618d175945a81ad3/multidict-6.7.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e011555abada53f1578d63389610ac8a5400fc70ce71156b0aa30d326f1a5064", size = 246877, upload-time = "2025-10-06T14:51:27.604Z" }, + { url = "https://files.pythonhosted.org/packages/23/b4/38881a960458f25b89e9f4a4fdcb02ac101cfa710190db6e5528841e67de/multidict-6.7.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:28b37063541b897fd6a318007373930a75ca6d6ac7c940dbe14731ffdd8d498e", size = 225824, upload-time = "2025-10-06T14:51:29.664Z" }, + { url = "https://files.pythonhosted.org/packages/1e/39/6566210c83f8a261575f18e7144736059f0c460b362e96e9cf797a24b8e7/multidict-6.7.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:05047ada7a2fde2631a0ed706f1fd68b169a681dfe5e4cf0f8e4cb6618bbc2cd", size = 253558, upload-time = "2025-10-06T14:51:31.684Z" }, + { url = "https://files.pythonhosted.org/packages/00/a3/67f18315100f64c269f46e6c0319fa87ba68f0f64f2b8e7fd7c72b913a0b/multidict-6.7.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:716133f7d1d946a4e1b91b1756b23c088881e70ff180c24e864c26192ad7534a", size = 252339, upload-time = "2025-10-06T14:51:33.699Z" }, + { url = "https://files.pythonhosted.org/packages/c8/2a/1cb77266afee2458d82f50da41beba02159b1d6b1f7973afc9a1cad1499b/multidict-6.7.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d1bed1b467ef657f2a0ae62844a607909ef1c6889562de5e1d505f74457d0b96", size = 244895, upload-time = "2025-10-06T14:51:36.189Z" }, + { url = "https://files.pythonhosted.org/packages/dd/72/09fa7dd487f119b2eb9524946ddd36e2067c08510576d43ff68469563b3b/multidict-6.7.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ca43bdfa5d37bd6aee89d85e1d0831fb86e25541be7e9d376ead1b28974f8e5e", size = 241862, upload-time = "2025-10-06T14:51:41.291Z" }, + { url = "https://files.pythonhosted.org/packages/65/92/bc1f8bd0853d8669300f732c801974dfc3702c3eeadae2f60cef54dc69d7/multidict-6.7.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:44b546bd3eb645fd26fb949e43c02a25a2e632e2ca21a35e2e132c8105dc8599", size = 232376, upload-time = "2025-10-06T14:51:43.55Z" }, + { url = "https://files.pythonhosted.org/packages/09/86/ac39399e5cb9d0c2ac8ef6e10a768e4d3bc933ac808d49c41f9dc23337eb/multidict-6.7.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:a6ef16328011d3f468e7ebc326f24c1445f001ca1dec335b2f8e66bed3006394", size = 240272, upload-time = "2025-10-06T14:51:45.265Z" }, + { url = "https://files.pythonhosted.org/packages/3d/b6/fed5ac6b8563ec72df6cb1ea8dac6d17f0a4a1f65045f66b6d3bf1497c02/multidict-6.7.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:5aa873cbc8e593d361ae65c68f85faadd755c3295ea2c12040ee146802f23b38", size = 248774, upload-time = "2025-10-06T14:51:46.836Z" }, + { url = "https://files.pythonhosted.org/packages/6b/8d/b954d8c0dc132b68f760aefd45870978deec6818897389dace00fcde32ff/multidict-6.7.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:3d7b6ccce016e29df4b7ca819659f516f0bc7a4b3efa3bb2012ba06431b044f9", size = 242731, upload-time = "2025-10-06T14:51:48.541Z" }, + { url = "https://files.pythonhosted.org/packages/16/9d/a2dac7009125d3540c2f54e194829ea18ac53716c61b655d8ed300120b0f/multidict-6.7.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:171b73bd4ee683d307599b66793ac80981b06f069b62eea1c9e29c9241aa66b0", size = 240193, upload-time = "2025-10-06T14:51:50.355Z" }, + { url = "https://files.pythonhosted.org/packages/39/ca/c05f144128ea232ae2178b008d5011d4e2cea86e4ee8c85c2631b1b94802/multidict-6.7.0-cp314-cp314t-win32.whl", hash = "sha256:b2d7f80c4e1fd010b07cb26820aae86b7e73b681ee4889684fb8d2d4537aab13", size = 48023, upload-time = "2025-10-06T14:51:51.883Z" }, + { url = "https://files.pythonhosted.org/packages/ba/8f/0a60e501584145588be1af5cc829265701ba3c35a64aec8e07cbb71d39bb/multidict-6.7.0-cp314-cp314t-win_amd64.whl", hash = "sha256:09929cab6fcb68122776d575e03c6cc64ee0b8fca48d17e135474b042ce515cd", size = 53507, upload-time = "2025-10-06T14:51:53.672Z" }, + { url = "https://files.pythonhosted.org/packages/7f/ae/3148b988a9c6239903e786eac19c889fab607c31d6efa7fb2147e5680f23/multidict-6.7.0-cp314-cp314t-win_arm64.whl", hash = "sha256:cc41db090ed742f32bd2d2c721861725e6109681eddf835d0a82bd3a5c382827", size = 44804, upload-time = "2025-10-06T14:51:55.415Z" }, + { url = "https://files.pythonhosted.org/packages/b7/da/7d22601b625e241d4f23ef1ebff8acfc60da633c9e7e7922e24d10f592b3/multidict-6.7.0-py3-none-any.whl", hash = "sha256:394fc5c42a333c9ffc3e421a4c85e08580d990e08b99f6bf35b4132114c5dcb3", size = 12317, upload-time = "2025-10-06T14:52:29.272Z" }, +] + +[[package]] +name = "mypy" +version = "1.18.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mypy-extensions" }, + { name = "pathspec" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c0/77/8f0d0001ffad290cef2f7f216f96c814866248a0b92a722365ed54648e7e/mypy-1.18.2.tar.gz", hash = "sha256:06a398102a5f203d7477b2923dda3634c36727fa5c237d8f859ef90c42a9924b", size = 3448846, upload-time = "2025-09-19T00:11:10.519Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/87/cafd3ae563f88f94eec33f35ff722d043e09832ea8530ef149ec1efbaf08/mypy-1.18.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:807d9315ab9d464125aa9fcf6d84fde6e1dc67da0b6f80e7405506b8ac72bc7f", size = 12731198, upload-time = "2025-09-19T00:09:44.857Z" }, + { url = "https://files.pythonhosted.org/packages/0f/e0/1e96c3d4266a06d4b0197ace5356d67d937d8358e2ee3ffac71faa843724/mypy-1.18.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:776bb00de1778caf4db739c6e83919c1d85a448f71979b6a0edd774ea8399341", size = 11817879, upload-time = "2025-09-19T00:09:47.131Z" }, + { url = "https://files.pythonhosted.org/packages/72/ef/0c9ba89eb03453e76bdac5a78b08260a848c7bfc5d6603634774d9cd9525/mypy-1.18.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1379451880512ffce14505493bd9fe469e0697543717298242574882cf8cdb8d", size = 12427292, upload-time = "2025-09-19T00:10:22.472Z" }, + { url = "https://files.pythonhosted.org/packages/1a/52/ec4a061dd599eb8179d5411d99775bec2a20542505988f40fc2fee781068/mypy-1.18.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1331eb7fd110d60c24999893320967594ff84c38ac6d19e0a76c5fd809a84c86", size = 13163750, upload-time = "2025-09-19T00:09:51.472Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5f/2cf2ceb3b36372d51568f2208c021870fe7834cf3186b653ac6446511839/mypy-1.18.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3ca30b50a51e7ba93b00422e486cbb124f1c56a535e20eff7b2d6ab72b3b2e37", size = 13351827, upload-time = "2025-09-19T00:09:58.311Z" }, + { url = "https://files.pythonhosted.org/packages/c8/7d/2697b930179e7277529eaaec1513f8de622818696857f689e4a5432e5e27/mypy-1.18.2-cp311-cp311-win_amd64.whl", hash = "sha256:664dc726e67fa54e14536f6e1224bcfce1d9e5ac02426d2326e2bb4e081d1ce8", size = 9757983, upload-time = "2025-09-19T00:10:09.071Z" }, + { url = "https://files.pythonhosted.org/packages/07/06/dfdd2bc60c66611dd8335f463818514733bc763e4760dee289dcc33df709/mypy-1.18.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:33eca32dd124b29400c31d7cf784e795b050ace0e1f91b8dc035672725617e34", size = 12908273, upload-time = "2025-09-19T00:10:58.321Z" }, + { url = "https://files.pythonhosted.org/packages/81/14/6a9de6d13a122d5608e1a04130724caf9170333ac5a924e10f670687d3eb/mypy-1.18.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a3c47adf30d65e89b2dcd2fa32f3aeb5e94ca970d2c15fcb25e297871c8e4764", size = 11920910, upload-time = "2025-09-19T00:10:20.043Z" }, + { url = "https://files.pythonhosted.org/packages/5f/a9/b29de53e42f18e8cc547e38daa9dfa132ffdc64f7250e353f5c8cdd44bee/mypy-1.18.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d6c838e831a062f5f29d11c9057c6009f60cb294fea33a98422688181fe2893", size = 12465585, upload-time = "2025-09-19T00:10:33.005Z" }, + { url = "https://files.pythonhosted.org/packages/77/ae/6c3d2c7c61ff21f2bee938c917616c92ebf852f015fb55917fd6e2811db2/mypy-1.18.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01199871b6110a2ce984bde85acd481232d17413868c9807e95c1b0739a58914", size = 13348562, upload-time = "2025-09-19T00:10:11.51Z" }, + { url = "https://files.pythonhosted.org/packages/4d/31/aec68ab3b4aebdf8f36d191b0685d99faa899ab990753ca0fee60fb99511/mypy-1.18.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a2afc0fa0b0e91b4599ddfe0f91e2c26c2b5a5ab263737e998d6817874c5f7c8", size = 13533296, upload-time = "2025-09-19T00:10:06.568Z" }, + { url = "https://files.pythonhosted.org/packages/9f/83/abcb3ad9478fca3ebeb6a5358bb0b22c95ea42b43b7789c7fb1297ca44f4/mypy-1.18.2-cp312-cp312-win_amd64.whl", hash = "sha256:d8068d0afe682c7c4897c0f7ce84ea77f6de953262b12d07038f4d296d547074", size = 9828828, upload-time = "2025-09-19T00:10:28.203Z" }, + { url = "https://files.pythonhosted.org/packages/5f/04/7f462e6fbba87a72bc8097b93f6842499c428a6ff0c81dd46948d175afe8/mypy-1.18.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:07b8b0f580ca6d289e69209ec9d3911b4a26e5abfde32228a288eb79df129fcc", size = 12898728, upload-time = "2025-09-19T00:10:01.33Z" }, + { url = "https://files.pythonhosted.org/packages/99/5b/61ed4efb64f1871b41fd0b82d29a64640f3516078f6c7905b68ab1ad8b13/mypy-1.18.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ed4482847168439651d3feee5833ccedbf6657e964572706a2adb1f7fa4dfe2e", size = 11910758, upload-time = "2025-09-19T00:10:42.607Z" }, + { url = "https://files.pythonhosted.org/packages/3c/46/d297d4b683cc89a6e4108c4250a6a6b717f5fa96e1a30a7944a6da44da35/mypy-1.18.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c3ad2afadd1e9fea5cf99a45a822346971ede8685cc581ed9cd4d42eaf940986", size = 12475342, upload-time = "2025-09-19T00:11:00.371Z" }, + { url = "https://files.pythonhosted.org/packages/83/45/4798f4d00df13eae3bfdf726c9244bcb495ab5bd588c0eed93a2f2dd67f3/mypy-1.18.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a431a6f1ef14cf8c144c6b14793a23ec4eae3db28277c358136e79d7d062f62d", size = 13338709, upload-time = "2025-09-19T00:11:03.358Z" }, + { url = "https://files.pythonhosted.org/packages/d7/09/479f7358d9625172521a87a9271ddd2441e1dab16a09708f056e97007207/mypy-1.18.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7ab28cc197f1dd77a67e1c6f35cd1f8e8b73ed2217e4fc005f9e6a504e46e7ba", size = 13529806, upload-time = "2025-09-19T00:10:26.073Z" }, + { url = "https://files.pythonhosted.org/packages/71/cf/ac0f2c7e9d0ea3c75cd99dff7aec1c9df4a1376537cb90e4c882267ee7e9/mypy-1.18.2-cp313-cp313-win_amd64.whl", hash = "sha256:0e2785a84b34a72ba55fb5daf079a1003a34c05b22238da94fcae2bbe46f3544", size = 9833262, upload-time = "2025-09-19T00:10:40.035Z" }, + { url = "https://files.pythonhosted.org/packages/5a/0c/7d5300883da16f0063ae53996358758b2a2df2a09c72a5061fa79a1f5006/mypy-1.18.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:62f0e1e988ad41c2a110edde6c398383a889d95b36b3e60bcf155f5164c4fdce", size = 12893775, upload-time = "2025-09-19T00:10:03.814Z" }, + { url = "https://files.pythonhosted.org/packages/50/df/2cffbf25737bdb236f60c973edf62e3e7b4ee1c25b6878629e88e2cde967/mypy-1.18.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:8795a039bab805ff0c1dfdb8cd3344642c2b99b8e439d057aba30850b8d3423d", size = 11936852, upload-time = "2025-09-19T00:10:51.631Z" }, + { url = "https://files.pythonhosted.org/packages/be/50/34059de13dd269227fb4a03be1faee6e2a4b04a2051c82ac0a0b5a773c9a/mypy-1.18.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6ca1e64b24a700ab5ce10133f7ccd956a04715463d30498e64ea8715236f9c9c", size = 12480242, upload-time = "2025-09-19T00:11:07.955Z" }, + { url = "https://files.pythonhosted.org/packages/5b/11/040983fad5132d85914c874a2836252bbc57832065548885b5bb5b0d4359/mypy-1.18.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d924eef3795cc89fecf6bedc6ed32b33ac13e8321344f6ddbf8ee89f706c05cb", size = 13326683, upload-time = "2025-09-19T00:09:55.572Z" }, + { url = "https://files.pythonhosted.org/packages/e9/ba/89b2901dd77414dd7a8c8729985832a5735053be15b744c18e4586e506ef/mypy-1.18.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:20c02215a080e3a2be3aa50506c67242df1c151eaba0dcbc1e4e557922a26075", size = 13514749, upload-time = "2025-09-19T00:10:44.827Z" }, + { url = "https://files.pythonhosted.org/packages/25/bc/cc98767cffd6b2928ba680f3e5bc969c4152bf7c2d83f92f5a504b92b0eb/mypy-1.18.2-cp314-cp314-win_amd64.whl", hash = "sha256:749b5f83198f1ca64345603118a6f01a4e99ad4bf9d103ddc5a3200cc4614adf", size = 9982959, upload-time = "2025-09-19T00:10:37.344Z" }, + { url = "https://files.pythonhosted.org/packages/87/e3/be76d87158ebafa0309946c4a73831974d4d6ab4f4ef40c3b53a385a66fd/mypy-1.18.2-py3-none-any.whl", hash = "sha256:22a1748707dd62b58d2ae53562ffc4d7f8bcc727e8ac7cbc69c053ddc874d47e", size = 2352367, upload-time = "2025-09-19T00:10:15.489Z" }, +] + +[[package]] +name = "mypy-extensions" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, +] + +[[package]] +name = "openapi-pydantic" +version = "0.5.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/02/2e/58d83848dd1a79cb92ed8e63f6ba901ca282c5f09d04af9423ec26c56fd7/openapi_pydantic-0.5.1.tar.gz", hash = "sha256:ff6835af6bde7a459fb93eb93bb92b8749b754fc6e51b2f1590a19dc3005ee0d", size = 60892, upload-time = "2025-01-08T19:29:27.083Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/cf/03675d8bd8ecbf4445504d8071adab19f5f993676795708e36402ab38263/openapi_pydantic-0.5.1-py3-none-any.whl", hash = "sha256:a3a09ef4586f5bd760a8df7f43028b60cafb6d9f61de2acba9574766255ab146", size = 96381, upload-time = "2025-01-08T19:29:25.275Z" }, +] + +[[package]] +name = "opentelemetry-api" +version = "1.38.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "importlib-metadata" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/08/d8/0f354c375628e048bd0570645b310797299754730079853095bf000fba69/opentelemetry_api-1.38.0.tar.gz", hash = "sha256:f4c193b5e8acb0912b06ac5b16321908dd0843d75049c091487322284a3eea12", size = 65242, upload-time = "2025-10-16T08:35:50.25Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/a2/d86e01c28300bd41bab8f18afd613676e2bd63515417b77636fc1add426f/opentelemetry_api-1.38.0-py3-none-any.whl", hash = "sha256:2891b0197f47124454ab9f0cf58f3be33faca394457ac3e09daba13ff50aa582", size = 65947, upload-time = "2025-10-16T08:35:30.23Z" }, +] + +[[package]] +name = "opentelemetry-mcp" +version = "0.1.0" +source = { editable = "." } +dependencies = [ + { name = "click" }, + { name = "fastmcp" }, + { name = "httpx" }, + { name = "mcp" }, + { name = "opentelemetry-semantic-conventions" }, + { name = "opentelemetry-semantic-conventions-ai" }, + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "starlette" }, + { name = "uvicorn" }, +] + +[package.dev-dependencies] +dev = [ + { name = "mypy" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-cov" }, + { name = "pytest-recording" }, + { name = "ruff" }, + { name = "types-click" }, +] + +[package.metadata] +requires-dist = [ + { name = "click", specifier = "~=8.3.0" }, + { name = "fastmcp", specifier = "~=2.13.0" }, + { name = "httpx", specifier = "~=0.28.0" }, + { name = "mcp", specifier = "~=1.20.0" }, + { name = "opentelemetry-semantic-conventions", specifier = ">=0.48b0" }, + { name = "opentelemetry-semantic-conventions-ai", specifier = ">=0.4.0" }, + { name = "pydantic", specifier = "~=2.12.0" }, + { name = "python-dotenv", specifier = "~=1.2.0" }, + { name = "starlette", specifier = "~=0.50.0" }, + { name = "uvicorn", specifier = "~=0.38.0" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "mypy", specifier = "~=1.18.0" }, + { name = "pytest", specifier = "~=8.4.0" }, + { name = "pytest-asyncio", specifier = "~=1.2.0" }, + { name = "pytest-cov", specifier = "~=7.0.0" }, + { name = "pytest-recording", specifier = "~=0.13.0" }, + { name = "ruff", specifier = "~=0.14.0" }, + { name = "types-click", specifier = "~=7.1.8" }, +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.59b0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/40/bc/8b9ad3802cd8ac6583a4eb7de7e5d7db004e89cb7efe7008f9c8a537ee75/opentelemetry_semantic_conventions-0.59b0.tar.gz", hash = "sha256:7a6db3f30d70202d5bf9fa4b69bc866ca6a30437287de6c510fb594878aed6b0", size = 129861, upload-time = "2025-10-16T08:36:03.346Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/24/7d/c88d7b15ba8fe5c6b8f93be50fc11795e9fc05386c44afaf6b76fe191f9b/opentelemetry_semantic_conventions-0.59b0-py3-none-any.whl", hash = "sha256:35d3b8833ef97d614136e253c1da9342b4c3c083bbaf29ce31d572a1c3825eed", size = 207954, upload-time = "2025-10-16T08:35:48.054Z" }, +] + +[[package]] +name = "opentelemetry-semantic-conventions-ai" +version = "0.4.13" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/e6/40b59eda51ac47009fb47afcdf37c6938594a0bd7f3b9fadcbc6058248e3/opentelemetry_semantic_conventions_ai-0.4.13.tar.gz", hash = "sha256:94efa9fb4ffac18c45f54a3a338ffeb7eedb7e1bb4d147786e77202e159f0036", size = 5368, upload-time = "2025-08-22T10:14:17.387Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/35/b5/cf25da2218910f0d6cdf7f876a06bed118c4969eacaf60a887cbaef44f44/opentelemetry_semantic_conventions_ai-0.4.13-py3-none-any.whl", hash = "sha256:883a30a6bb5deaec0d646912b5f9f6dcbb9f6f72557b73d0f2560bf25d13e2d5", size = 6080, upload-time = "2025-08-22T10:14:16.477Z" }, +] + +[[package]] +name = "packaging" +version = "25.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a1/d4/1fc4078c65507b51b96ca8f8c3ba19e6a61c8253c72794544580a7b6c24d/packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f", size = 165727, upload-time = "2025-04-19T11:48:59.673Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484", size = 66469, upload-time = "2025-04-19T11:48:57.875Z" }, +] + +[[package]] +name = "pathable" +version = "0.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/67/93/8f2c2075b180c12c1e9f6a09d1a985bc2036906b13dff1d8917e395f2048/pathable-0.4.4.tar.gz", hash = "sha256:6905a3cd17804edfac7875b5f6c9142a218c7caef78693c2dbbbfbac186d88b2", size = 8124, upload-time = "2025-01-10T18:43:13.247Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7d/eb/b6260b31b1a96386c0a880edebe26f89669098acea8e0318bff6adb378fd/pathable-0.4.4-py3-none-any.whl", hash = "sha256:5ae9e94793b6ef5a4cbe0a7ce9dbbefc1eec38df253763fd0aeeacf2762dbbc2", size = 9592, upload-time = "2025-01-10T18:43:11.88Z" }, +] + +[[package]] +name = "pathspec" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/bc/f35b8446f4531a7cb215605d100cd88b7ac6f44ab3fc94870c120ab3adbf/pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712", size = 51043, upload-time = "2023-12-10T22:30:45Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08", size = 31191, upload-time = "2023-12-10T22:30:43.14Z" }, +] + +[[package]] +name = "pathvalidate" +version = "3.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fa/2a/52a8da6fe965dea6192eb716b357558e103aea0a1e9a8352ad575a8406ca/pathvalidate-3.3.1.tar.gz", hash = "sha256:b18c07212bfead624345bb8e1d6141cdcf15a39736994ea0b94035ad2b1ba177", size = 63262, upload-time = "2025-06-15T09:07:20.736Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/70/875f4a23bfc4731703a5835487d0d2fb999031bd415e7d17c0ae615c18b7/pathvalidate-3.3.1-py3-none-any.whl", hash = "sha256:5263baab691f8e1af96092fa5137ee17df5bdfbd6cff1fcac4d6ef4bc2e1735f", size = 24305, upload-time = "2025-06-15T09:07:19.117Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.5.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/61/33/9611380c2bdb1225fdef633e2a9610622310fed35ab11dac9620972ee088/platformdirs-4.5.0.tar.gz", hash = "sha256:70ddccdd7c99fc5942e9fc25636a8b34d04c24b335100223152c2803e4063312", size = 21632, upload-time = "2025-10-08T17:44:48.791Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/cb/ac7874b3e5d58441674fb70742e6c374b28b0c7cb988d37d991cde47166c/platformdirs-4.5.0-py3-none-any.whl", hash = "sha256:e578a81bb873cbb89a41fcc904c7ef523cc18284b7e3b3ccf06aca1403b7ebd3", size = 18651, upload-time = "2025-10-08T17:44:47.223Z" }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, +] + +[[package]] +name = "propcache" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9e/da/e9fc233cf63743258bff22b3dfa7ea5baef7b5bc324af47a0ad89b8ffc6f/propcache-0.4.1.tar.gz", hash = "sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d", size = 46442, upload-time = "2025-10-08T19:49:02.291Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/d4/4e2c9aaf7ac2242b9358f98dccd8f90f2605402f5afeff6c578682c2c491/propcache-0.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf", size = 80208, upload-time = "2025-10-08T19:46:24.597Z" }, + { url = "https://files.pythonhosted.org/packages/c2/21/d7b68e911f9c8e18e4ae43bdbc1e1e9bbd971f8866eb81608947b6f585ff/propcache-0.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5", size = 45777, upload-time = "2025-10-08T19:46:25.733Z" }, + { url = "https://files.pythonhosted.org/packages/d3/1d/11605e99ac8ea9435651ee71ab4cb4bf03f0949586246476a25aadfec54a/propcache-0.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e", size = 47647, upload-time = "2025-10-08T19:46:27.304Z" }, + { url = "https://files.pythonhosted.org/packages/58/1a/3c62c127a8466c9c843bccb503d40a273e5cc69838805f322e2826509e0d/propcache-0.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566", size = 214929, upload-time = "2025-10-08T19:46:28.62Z" }, + { url = "https://files.pythonhosted.org/packages/56/b9/8fa98f850960b367c4b8fe0592e7fc341daa7a9462e925228f10a60cf74f/propcache-0.4.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165", size = 221778, upload-time = "2025-10-08T19:46:30.358Z" }, + { url = "https://files.pythonhosted.org/packages/46/a6/0ab4f660eb59649d14b3d3d65c439421cf2f87fe5dd68591cbe3c1e78a89/propcache-0.4.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc", size = 228144, upload-time = "2025-10-08T19:46:32.607Z" }, + { url = "https://files.pythonhosted.org/packages/52/6a/57f43e054fb3d3a56ac9fc532bc684fc6169a26c75c353e65425b3e56eef/propcache-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48", size = 210030, upload-time = "2025-10-08T19:46:33.969Z" }, + { url = "https://files.pythonhosted.org/packages/40/e2/27e6feebb5f6b8408fa29f5efbb765cd54c153ac77314d27e457a3e993b7/propcache-0.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570", size = 208252, upload-time = "2025-10-08T19:46:35.309Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f8/91c27b22ccda1dbc7967f921c42825564fa5336a01ecd72eb78a9f4f53c2/propcache-0.4.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85", size = 202064, upload-time = "2025-10-08T19:46:36.993Z" }, + { url = "https://files.pythonhosted.org/packages/f2/26/7f00bd6bd1adba5aafe5f4a66390f243acab58eab24ff1a08bebb2ef9d40/propcache-0.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e", size = 212429, upload-time = "2025-10-08T19:46:38.398Z" }, + { url = "https://files.pythonhosted.org/packages/84/89/fd108ba7815c1117ddca79c228f3f8a15fc82a73bca8b142eb5de13b2785/propcache-0.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757", size = 216727, upload-time = "2025-10-08T19:46:39.732Z" }, + { url = "https://files.pythonhosted.org/packages/79/37/3ec3f7e3173e73f1d600495d8b545b53802cbf35506e5732dd8578db3724/propcache-0.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f", size = 205097, upload-time = "2025-10-08T19:46:41.025Z" }, + { url = "https://files.pythonhosted.org/packages/61/b0/b2631c19793f869d35f47d5a3a56fb19e9160d3c119f15ac7344fc3ccae7/propcache-0.4.1-cp311-cp311-win32.whl", hash = "sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1", size = 38084, upload-time = "2025-10-08T19:46:42.693Z" }, + { url = "https://files.pythonhosted.org/packages/f4/78/6cce448e2098e9f3bfc91bb877f06aa24b6ccace872e39c53b2f707c4648/propcache-0.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6", size = 41637, upload-time = "2025-10-08T19:46:43.778Z" }, + { url = "https://files.pythonhosted.org/packages/9c/e9/754f180cccd7f51a39913782c74717c581b9cc8177ad0e949f4d51812383/propcache-0.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239", size = 38064, upload-time = "2025-10-08T19:46:44.872Z" }, + { url = "https://files.pythonhosted.org/packages/a2/0f/f17b1b2b221d5ca28b4b876e8bb046ac40466513960646bda8e1853cdfa2/propcache-0.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2", size = 80061, upload-time = "2025-10-08T19:46:46.075Z" }, + { url = "https://files.pythonhosted.org/packages/76/47/8ccf75935f51448ba9a16a71b783eb7ef6b9ee60f5d14c7f8a8a79fbeed7/propcache-0.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403", size = 46037, upload-time = "2025-10-08T19:46:47.23Z" }, + { url = "https://files.pythonhosted.org/packages/0a/b6/5c9a0e42df4d00bfb4a3cbbe5cf9f54260300c88a0e9af1f47ca5ce17ac0/propcache-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207", size = 47324, upload-time = "2025-10-08T19:46:48.384Z" }, + { url = "https://files.pythonhosted.org/packages/9e/d3/6c7ee328b39a81ee877c962469f1e795f9db87f925251efeb0545e0020d0/propcache-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72", size = 225505, upload-time = "2025-10-08T19:46:50.055Z" }, + { url = "https://files.pythonhosted.org/packages/01/5d/1c53f4563490b1d06a684742cc6076ef944bc6457df6051b7d1a877c057b/propcache-0.4.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367", size = 230242, upload-time = "2025-10-08T19:46:51.815Z" }, + { url = "https://files.pythonhosted.org/packages/20/e1/ce4620633b0e2422207c3cb774a0ee61cac13abc6217763a7b9e2e3f4a12/propcache-0.4.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4", size = 238474, upload-time = "2025-10-08T19:46:53.208Z" }, + { url = "https://files.pythonhosted.org/packages/46/4b/3aae6835b8e5f44ea6a68348ad90f78134047b503765087be2f9912140ea/propcache-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf", size = 221575, upload-time = "2025-10-08T19:46:54.511Z" }, + { url = "https://files.pythonhosted.org/packages/6e/a5/8a5e8678bcc9d3a1a15b9a29165640d64762d424a16af543f00629c87338/propcache-0.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3", size = 216736, upload-time = "2025-10-08T19:46:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/f1/63/b7b215eddeac83ca1c6b934f89d09a625aa9ee4ba158338854c87210cc36/propcache-0.4.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778", size = 213019, upload-time = "2025-10-08T19:46:57.595Z" }, + { url = "https://files.pythonhosted.org/packages/57/74/f580099a58c8af587cac7ba19ee7cb418506342fbbe2d4a4401661cca886/propcache-0.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6", size = 220376, upload-time = "2025-10-08T19:46:59.067Z" }, + { url = "https://files.pythonhosted.org/packages/c4/ee/542f1313aff7eaf19c2bb758c5d0560d2683dac001a1c96d0774af799843/propcache-0.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9", size = 226988, upload-time = "2025-10-08T19:47:00.544Z" }, + { url = "https://files.pythonhosted.org/packages/8f/18/9c6b015dd9c6930f6ce2229e1f02fb35298b847f2087ea2b436a5bfa7287/propcache-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75", size = 215615, upload-time = "2025-10-08T19:47:01.968Z" }, + { url = "https://files.pythonhosted.org/packages/80/9e/e7b85720b98c45a45e1fca6a177024934dc9bc5f4d5dd04207f216fc33ed/propcache-0.4.1-cp312-cp312-win32.whl", hash = "sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8", size = 38066, upload-time = "2025-10-08T19:47:03.503Z" }, + { url = "https://files.pythonhosted.org/packages/54/09/d19cff2a5aaac632ec8fc03737b223597b1e347416934c1b3a7df079784c/propcache-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db", size = 41655, upload-time = "2025-10-08T19:47:04.973Z" }, + { url = "https://files.pythonhosted.org/packages/68/ab/6b5c191bb5de08036a8c697b265d4ca76148efb10fa162f14af14fb5f076/propcache-0.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1", size = 37789, upload-time = "2025-10-08T19:47:06.077Z" }, + { url = "https://files.pythonhosted.org/packages/bf/df/6d9c1b6ac12b003837dde8a10231a7344512186e87b36e855bef32241942/propcache-0.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf", size = 77750, upload-time = "2025-10-08T19:47:07.648Z" }, + { url = "https://files.pythonhosted.org/packages/8b/e8/677a0025e8a2acf07d3418a2e7ba529c9c33caf09d3c1f25513023c1db56/propcache-0.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311", size = 44780, upload-time = "2025-10-08T19:47:08.851Z" }, + { url = "https://files.pythonhosted.org/packages/89/a4/92380f7ca60f99ebae761936bc48a72a639e8a47b29050615eef757cb2a7/propcache-0.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74", size = 46308, upload-time = "2025-10-08T19:47:09.982Z" }, + { url = "https://files.pythonhosted.org/packages/2d/48/c5ac64dee5262044348d1d78a5f85dd1a57464a60d30daee946699963eb3/propcache-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe", size = 208182, upload-time = "2025-10-08T19:47:11.319Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0c/cd762dd011a9287389a6a3eb43aa30207bde253610cca06824aeabfe9653/propcache-0.4.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af", size = 211215, upload-time = "2025-10-08T19:47:13.146Z" }, + { url = "https://files.pythonhosted.org/packages/30/3e/49861e90233ba36890ae0ca4c660e95df565b2cd15d4a68556ab5865974e/propcache-0.4.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c", size = 218112, upload-time = "2025-10-08T19:47:14.913Z" }, + { url = "https://files.pythonhosted.org/packages/f1/8b/544bc867e24e1bd48f3118cecd3b05c694e160a168478fa28770f22fd094/propcache-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f", size = 204442, upload-time = "2025-10-08T19:47:16.277Z" }, + { url = "https://files.pythonhosted.org/packages/50/a6/4282772fd016a76d3e5c0df58380a5ea64900afd836cec2c2f662d1b9bb3/propcache-0.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1", size = 199398, upload-time = "2025-10-08T19:47:17.962Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ec/d8a7cd406ee1ddb705db2139f8a10a8a427100347bd698e7014351c7af09/propcache-0.4.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24", size = 196920, upload-time = "2025-10-08T19:47:19.355Z" }, + { url = "https://files.pythonhosted.org/packages/f6/6c/f38ab64af3764f431e359f8baf9e0a21013e24329e8b85d2da32e8ed07ca/propcache-0.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa", size = 203748, upload-time = "2025-10-08T19:47:21.338Z" }, + { url = "https://files.pythonhosted.org/packages/d6/e3/fa846bd70f6534d647886621388f0a265254d30e3ce47e5c8e6e27dbf153/propcache-0.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61", size = 205877, upload-time = "2025-10-08T19:47:23.059Z" }, + { url = "https://files.pythonhosted.org/packages/e2/39/8163fc6f3133fea7b5f2827e8eba2029a0277ab2c5beee6c1db7b10fc23d/propcache-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66", size = 199437, upload-time = "2025-10-08T19:47:24.445Z" }, + { url = "https://files.pythonhosted.org/packages/93/89/caa9089970ca49c7c01662bd0eeedfe85494e863e8043565aeb6472ce8fe/propcache-0.4.1-cp313-cp313-win32.whl", hash = "sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81", size = 37586, upload-time = "2025-10-08T19:47:25.736Z" }, + { url = "https://files.pythonhosted.org/packages/f5/ab/f76ec3c3627c883215b5c8080debb4394ef5a7a29be811f786415fc1e6fd/propcache-0.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e", size = 40790, upload-time = "2025-10-08T19:47:26.847Z" }, + { url = "https://files.pythonhosted.org/packages/59/1b/e71ae98235f8e2ba5004d8cb19765a74877abf189bc53fc0c80d799e56c3/propcache-0.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1", size = 37158, upload-time = "2025-10-08T19:47:27.961Z" }, + { url = "https://files.pythonhosted.org/packages/83/ce/a31bbdfc24ee0dcbba458c8175ed26089cf109a55bbe7b7640ed2470cfe9/propcache-0.4.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b", size = 81451, upload-time = "2025-10-08T19:47:29.445Z" }, + { url = "https://files.pythonhosted.org/packages/25/9c/442a45a470a68456e710d96cacd3573ef26a1d0a60067e6a7d5e655621ed/propcache-0.4.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566", size = 46374, upload-time = "2025-10-08T19:47:30.579Z" }, + { url = "https://files.pythonhosted.org/packages/f4/bf/b1d5e21dbc3b2e889ea4327044fb16312a736d97640fb8b6aa3f9c7b3b65/propcache-0.4.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835", size = 48396, upload-time = "2025-10-08T19:47:31.79Z" }, + { url = "https://files.pythonhosted.org/packages/f4/04/5b4c54a103d480e978d3c8a76073502b18db0c4bc17ab91b3cb5092ad949/propcache-0.4.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e", size = 275950, upload-time = "2025-10-08T19:47:33.481Z" }, + { url = "https://files.pythonhosted.org/packages/b4/c1/86f846827fb969c4b78b0af79bba1d1ea2156492e1b83dea8b8a6ae27395/propcache-0.4.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859", size = 273856, upload-time = "2025-10-08T19:47:34.906Z" }, + { url = "https://files.pythonhosted.org/packages/36/1d/fc272a63c8d3bbad6878c336c7a7dea15e8f2d23a544bda43205dfa83ada/propcache-0.4.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b", size = 280420, upload-time = "2025-10-08T19:47:36.338Z" }, + { url = "https://files.pythonhosted.org/packages/07/0c/01f2219d39f7e53d52e5173bcb09c976609ba30209912a0680adfb8c593a/propcache-0.4.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0", size = 263254, upload-time = "2025-10-08T19:47:37.692Z" }, + { url = "https://files.pythonhosted.org/packages/2d/18/cd28081658ce597898f0c4d174d4d0f3c5b6d4dc27ffafeef835c95eb359/propcache-0.4.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af", size = 261205, upload-time = "2025-10-08T19:47:39.659Z" }, + { url = "https://files.pythonhosted.org/packages/7a/71/1f9e22eb8b8316701c2a19fa1f388c8a3185082607da8e406a803c9b954e/propcache-0.4.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393", size = 247873, upload-time = "2025-10-08T19:47:41.084Z" }, + { url = "https://files.pythonhosted.org/packages/4a/65/3d4b61f36af2b4eddba9def857959f1016a51066b4f1ce348e0cf7881f58/propcache-0.4.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874", size = 262739, upload-time = "2025-10-08T19:47:42.51Z" }, + { url = "https://files.pythonhosted.org/packages/2a/42/26746ab087faa77c1c68079b228810436ccd9a5ce9ac85e2b7307195fd06/propcache-0.4.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7", size = 263514, upload-time = "2025-10-08T19:47:43.927Z" }, + { url = "https://files.pythonhosted.org/packages/94/13/630690fe201f5502d2403dd3cfd451ed8858fe3c738ee88d095ad2ff407b/propcache-0.4.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1", size = 257781, upload-time = "2025-10-08T19:47:45.448Z" }, + { url = "https://files.pythonhosted.org/packages/92/f7/1d4ec5841505f423469efbfc381d64b7b467438cd5a4bbcbb063f3b73d27/propcache-0.4.1-cp313-cp313t-win32.whl", hash = "sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717", size = 41396, upload-time = "2025-10-08T19:47:47.202Z" }, + { url = "https://files.pythonhosted.org/packages/48/f0/615c30622316496d2cbbc29f5985f7777d3ada70f23370608c1d3e081c1f/propcache-0.4.1-cp313-cp313t-win_amd64.whl", hash = "sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37", size = 44897, upload-time = "2025-10-08T19:47:48.336Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ca/6002e46eccbe0e33dcd4069ef32f7f1c9e243736e07adca37ae8c4830ec3/propcache-0.4.1-cp313-cp313t-win_arm64.whl", hash = "sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a", size = 39789, upload-time = "2025-10-08T19:47:49.876Z" }, + { url = "https://files.pythonhosted.org/packages/8e/5c/bca52d654a896f831b8256683457ceddd490ec18d9ec50e97dfd8fc726a8/propcache-0.4.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3f7124c9d820ba5548d431afb4632301acf965db49e666aa21c305cbe8c6de12", size = 78152, upload-time = "2025-10-08T19:47:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/65/9b/03b04e7d82a5f54fb16113d839f5ea1ede58a61e90edf515f6577c66fa8f/propcache-0.4.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:c0d4b719b7da33599dfe3b22d3db1ef789210a0597bc650b7cee9c77c2be8c5c", size = 44869, upload-time = "2025-10-08T19:47:52.594Z" }, + { url = "https://files.pythonhosted.org/packages/b2/fa/89a8ef0468d5833a23fff277b143d0573897cf75bd56670a6d28126c7d68/propcache-0.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:9f302f4783709a78240ebc311b793f123328716a60911d667e0c036bc5dcbded", size = 46596, upload-time = "2025-10-08T19:47:54.073Z" }, + { url = "https://files.pythonhosted.org/packages/86/bd/47816020d337f4a746edc42fe8d53669965138f39ee117414c7d7a340cfe/propcache-0.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c80ee5802e3fb9ea37938e7eecc307fb984837091d5fd262bb37238b1ae97641", size = 206981, upload-time = "2025-10-08T19:47:55.715Z" }, + { url = "https://files.pythonhosted.org/packages/df/f6/c5fa1357cc9748510ee55f37173eb31bfde6d94e98ccd9e6f033f2fc06e1/propcache-0.4.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ed5a841e8bb29a55fb8159ed526b26adc5bdd7e8bd7bf793ce647cb08656cdf4", size = 211490, upload-time = "2025-10-08T19:47:57.499Z" }, + { url = "https://files.pythonhosted.org/packages/80/1e/e5889652a7c4a3846683401a48f0f2e5083ce0ec1a8a5221d8058fbd1adf/propcache-0.4.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:55c72fd6ea2da4c318e74ffdf93c4fe4e926051133657459131a95c846d16d44", size = 215371, upload-time = "2025-10-08T19:47:59.317Z" }, + { url = "https://files.pythonhosted.org/packages/b2/f2/889ad4b2408f72fe1a4f6a19491177b30ea7bf1a0fd5f17050ca08cfc882/propcache-0.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8326e144341460402713f91df60ade3c999d601e7eb5ff8f6f7862d54de0610d", size = 201424, upload-time = "2025-10-08T19:48:00.67Z" }, + { url = "https://files.pythonhosted.org/packages/27/73/033d63069b57b0812c8bd19f311faebeceb6ba31b8f32b73432d12a0b826/propcache-0.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:060b16ae65bc098da7f6d25bf359f1f31f688384858204fe5d652979e0015e5b", size = 197566, upload-time = "2025-10-08T19:48:02.604Z" }, + { url = "https://files.pythonhosted.org/packages/dc/89/ce24f3dc182630b4e07aa6d15f0ff4b14ed4b9955fae95a0b54c58d66c05/propcache-0.4.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:89eb3fa9524f7bec9de6e83cf3faed9d79bffa560672c118a96a171a6f55831e", size = 193130, upload-time = "2025-10-08T19:48:04.499Z" }, + { url = "https://files.pythonhosted.org/packages/a9/24/ef0d5fd1a811fb5c609278d0209c9f10c35f20581fcc16f818da959fc5b4/propcache-0.4.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:dee69d7015dc235f526fe80a9c90d65eb0039103fe565776250881731f06349f", size = 202625, upload-time = "2025-10-08T19:48:06.213Z" }, + { url = "https://files.pythonhosted.org/packages/f5/02/98ec20ff5546f68d673df2f7a69e8c0d076b5abd05ca882dc7ee3a83653d/propcache-0.4.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5558992a00dfd54ccbc64a32726a3357ec93825a418a401f5cc67df0ac5d9e49", size = 204209, upload-time = "2025-10-08T19:48:08.432Z" }, + { url = "https://files.pythonhosted.org/packages/a0/87/492694f76759b15f0467a2a93ab68d32859672b646aa8a04ce4864e7932d/propcache-0.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c9b822a577f560fbd9554812526831712c1436d2c046cedee4c3796d3543b144", size = 197797, upload-time = "2025-10-08T19:48:09.968Z" }, + { url = "https://files.pythonhosted.org/packages/ee/36/66367de3575db1d2d3f3d177432bd14ee577a39d3f5d1b3d5df8afe3b6e2/propcache-0.4.1-cp314-cp314-win32.whl", hash = "sha256:ab4c29b49d560fe48b696cdcb127dd36e0bc2472548f3bf56cc5cb3da2b2984f", size = 38140, upload-time = "2025-10-08T19:48:11.232Z" }, + { url = "https://files.pythonhosted.org/packages/0c/2a/a758b47de253636e1b8aef181c0b4f4f204bf0dd964914fb2af90a95b49b/propcache-0.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:5a103c3eb905fcea0ab98be99c3a9a5ab2de60228aa5aceedc614c0281cf6153", size = 41257, upload-time = "2025-10-08T19:48:12.707Z" }, + { url = "https://files.pythonhosted.org/packages/34/5e/63bd5896c3fec12edcbd6f12508d4890d23c265df28c74b175e1ef9f4f3b/propcache-0.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:74c1fb26515153e482e00177a1ad654721bf9207da8a494a0c05e797ad27b992", size = 38097, upload-time = "2025-10-08T19:48:13.923Z" }, + { url = "https://files.pythonhosted.org/packages/99/85/9ff785d787ccf9bbb3f3106f79884a130951436f58392000231b4c737c80/propcache-0.4.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:824e908bce90fb2743bd6b59db36eb4f45cd350a39637c9f73b1c1ea66f5b75f", size = 81455, upload-time = "2025-10-08T19:48:15.16Z" }, + { url = "https://files.pythonhosted.org/packages/90/85/2431c10c8e7ddb1445c1f7c4b54d886e8ad20e3c6307e7218f05922cad67/propcache-0.4.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:c2b5e7db5328427c57c8e8831abda175421b709672f6cfc3d630c3b7e2146393", size = 46372, upload-time = "2025-10-08T19:48:16.424Z" }, + { url = "https://files.pythonhosted.org/packages/01/20/b0972d902472da9bcb683fa595099911f4d2e86e5683bcc45de60dd05dc3/propcache-0.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6f6ff873ed40292cd4969ef5310179afd5db59fdf055897e282485043fc80ad0", size = 48411, upload-time = "2025-10-08T19:48:17.577Z" }, + { url = "https://files.pythonhosted.org/packages/e2/e3/7dc89f4f21e8f99bad3d5ddb3a3389afcf9da4ac69e3deb2dcdc96e74169/propcache-0.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:49a2dc67c154db2c1463013594c458881a069fcf98940e61a0569016a583020a", size = 275712, upload-time = "2025-10-08T19:48:18.901Z" }, + { url = "https://files.pythonhosted.org/packages/20/67/89800c8352489b21a8047c773067644e3897f02ecbbd610f4d46b7f08612/propcache-0.4.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:005f08e6a0529984491e37d8dbc3dd86f84bd78a8ceb5fa9a021f4c48d4984be", size = 273557, upload-time = "2025-10-08T19:48:20.762Z" }, + { url = "https://files.pythonhosted.org/packages/e2/a1/b52b055c766a54ce6d9c16d9aca0cad8059acd9637cdf8aa0222f4a026ef/propcache-0.4.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5c3310452e0d31390da9035c348633b43d7e7feb2e37be252be6da45abd1abcc", size = 280015, upload-time = "2025-10-08T19:48:22.592Z" }, + { url = "https://files.pythonhosted.org/packages/48/c8/33cee30bd890672c63743049f3c9e4be087e6780906bfc3ec58528be59c1/propcache-0.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c3c70630930447f9ef1caac7728c8ad1c56bc5015338b20fed0d08ea2480b3a", size = 262880, upload-time = "2025-10-08T19:48:23.947Z" }, + { url = "https://files.pythonhosted.org/packages/0c/b1/8f08a143b204b418285c88b83d00edbd61afbc2c6415ffafc8905da7038b/propcache-0.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8e57061305815dfc910a3634dcf584f08168a8836e6999983569f51a8544cd89", size = 260938, upload-time = "2025-10-08T19:48:25.656Z" }, + { url = "https://files.pythonhosted.org/packages/cf/12/96e4664c82ca2f31e1c8dff86afb867348979eb78d3cb8546a680287a1e9/propcache-0.4.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:521a463429ef54143092c11a77e04056dd00636f72e8c45b70aaa3140d639726", size = 247641, upload-time = "2025-10-08T19:48:27.207Z" }, + { url = "https://files.pythonhosted.org/packages/18/ed/e7a9cfca28133386ba52278136d42209d3125db08d0a6395f0cba0c0285c/propcache-0.4.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:120c964da3fdc75e3731aa392527136d4ad35868cc556fd09bb6d09172d9a367", size = 262510, upload-time = "2025-10-08T19:48:28.65Z" }, + { url = "https://files.pythonhosted.org/packages/f5/76/16d8bf65e8845dd62b4e2b57444ab81f07f40caa5652b8969b87ddcf2ef6/propcache-0.4.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:d8f353eb14ee3441ee844ade4277d560cdd68288838673273b978e3d6d2c8f36", size = 263161, upload-time = "2025-10-08T19:48:30.133Z" }, + { url = "https://files.pythonhosted.org/packages/e7/70/c99e9edb5d91d5ad8a49fa3c1e8285ba64f1476782fed10ab251ff413ba1/propcache-0.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ab2943be7c652f09638800905ee1bab2c544e537edb57d527997a24c13dc1455", size = 257393, upload-time = "2025-10-08T19:48:31.567Z" }, + { url = "https://files.pythonhosted.org/packages/08/02/87b25304249a35c0915d236575bc3574a323f60b47939a2262b77632a3ee/propcache-0.4.1-cp314-cp314t-win32.whl", hash = "sha256:05674a162469f31358c30bcaa8883cb7829fa3110bf9c0991fe27d7896c42d85", size = 42546, upload-time = "2025-10-08T19:48:32.872Z" }, + { url = "https://files.pythonhosted.org/packages/cb/ef/3c6ecf8b317aa982f309835e8f96987466123c6e596646d4e6a1dfcd080f/propcache-0.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:990f6b3e2a27d683cb7602ed6c86f15ee6b43b1194736f9baaeb93d0016633b1", size = 46259, upload-time = "2025-10-08T19:48:34.226Z" }, + { url = "https://files.pythonhosted.org/packages/c4/2d/346e946d4951f37eca1e4f55be0f0174c52cd70720f84029b02f296f4a38/propcache-0.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:ecef2343af4cc68e05131e45024ba34f6095821988a9d0a02aa7c73fcc448aa9", size = 40428, upload-time = "2025-10-08T19:48:35.441Z" }, + { url = "https://files.pythonhosted.org/packages/5b/5a/bc7b4a4ef808fa59a816c17b20c4bef6884daebbdf627ff2a161da67da19/propcache-0.4.1-py3-none-any.whl", hash = "sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237", size = 13305, upload-time = "2025-10-08T19:49:00.792Z" }, +] + +[[package]] +name = "py-key-value-aio" +version = "0.2.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beartype" }, + { name = "py-key-value-shared" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ca/35/65310a4818acec0f87a46e5565e341c5a96fc062a9a03495ad28828ff4d7/py_key_value_aio-0.2.8.tar.gz", hash = "sha256:c0cfbb0bd4e962a3fa1a9fa6db9ba9df812899bd9312fa6368aaea7b26008b36", size = 32853, upload-time = "2025-10-24T13:31:04.688Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cd/5a/e56747d87a97ad2aff0f3700d77f186f0704c90c2da03bfed9e113dae284/py_key_value_aio-0.2.8-py3-none-any.whl", hash = "sha256:561565547ce8162128fd2bd0b9d70ce04a5f4586da8500cce79a54dfac78c46a", size = 69200, upload-time = "2025-10-24T13:31:03.81Z" }, +] + +[package.optional-dependencies] +disk = [ + { name = "diskcache" }, + { name = "pathvalidate" }, +] +keyring = [ + { name = "keyring" }, +] +memory = [ + { name = "cachetools" }, +] + +[[package]] +name = "py-key-value-shared" +version = "0.2.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beartype" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/26/79/05a1f9280cfa0709479319cbfd2b1c5beb23d5034624f548c83fb65b0b61/py_key_value_shared-0.2.8.tar.gz", hash = "sha256:703b4d3c61af124f0d528ba85995c3c8d78f8bd3d2b217377bd3278598070cc1", size = 8216, upload-time = "2025-10-24T13:31:03.601Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/7a/1726ceaa3343874f322dd83c9ec376ad81f533df8422b8b1e1233a59f8ce/py_key_value_shared-0.2.8-py3-none-any.whl", hash = "sha256:aff1bbfd46d065b2d67897d298642e80e5349eae588c6d11b48452b46b8d46ba", size = 14586, upload-time = "2025-10-24T13:31:02.838Z" }, +] + +[[package]] +name = "pycparser" +version = "2.23" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/cf/d2d3b9f5699fb1e4615c8e32ff220203e43b248e1dfcc6736ad9057731ca/pycparser-2.23.tar.gz", hash = "sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2", size = 173734, upload-time = "2025-09-09T13:23:47.91Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a0/e3/59cd50310fc9b59512193629e1984c1f95e5c8ae6e5d8c69532ccc65a7fe/pycparser-2.23-py3-none-any.whl", hash = "sha256:e5c6e8d3fbad53479cab09ac03729e0a9faf2bee3db8208a550daf5af81a5934", size = 118140, upload-time = "2025-09-09T13:23:46.651Z" }, +] + +[[package]] +name = "pydantic" +version = "2.12.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/1e/4f0a3233767010308f2fd6bd0814597e3f63f1dc98304a9112b8759df4ff/pydantic-2.12.3.tar.gz", hash = "sha256:1da1c82b0fc140bb0103bc1441ffe062154c8d38491189751ee00fd8ca65ce74", size = 819383, upload-time = "2025-10-17T15:04:21.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a1/6b/83661fa77dcefa195ad5f8cd9af3d1a7450fd57cc883ad04d65446ac2029/pydantic-2.12.3-py3-none-any.whl", hash = "sha256:6986454a854bc3bc6e5443e1369e06a3a456af9d339eda45510f517d9ea5c6bf", size = 462431, upload-time = "2025-10-17T15:04:19.346Z" }, +] + +[package.optional-dependencies] +email = [ + { name = "email-validator" }, +] + +[[package]] +name = "pydantic-core" +version = "2.41.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/18/d0944e8eaaa3efd0a91b0f1fc537d3be55ad35091b6a87638211ba691964/pydantic_core-2.41.4.tar.gz", hash = "sha256:70e47929a9d4a1905a67e4b687d5946026390568a8e952b92824118063cee4d5", size = 457557, upload-time = "2025-10-14T10:23:47.909Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/4c/f6cbfa1e8efacd00b846764e8484fe173d25b8dab881e277a619177f3384/pydantic_core-2.41.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:28ff11666443a1a8cf2a044d6a545ebffa8382b5f7973f22c36109205e65dc80", size = 2109062, upload-time = "2025-10-14T10:20:04.486Z" }, + { url = "https://files.pythonhosted.org/packages/21/f8/40b72d3868896bfcd410e1bd7e516e762d326201c48e5b4a06446f6cf9e8/pydantic_core-2.41.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:61760c3925d4633290292bad462e0f737b840508b4f722247d8729684f6539ae", size = 1916301, upload-time = "2025-10-14T10:20:06.857Z" }, + { url = "https://files.pythonhosted.org/packages/94/4d/d203dce8bee7faeca791671c88519969d98d3b4e8f225da5b96dad226fc8/pydantic_core-2.41.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eae547b7315d055b0de2ec3965643b0ab82ad0106a7ffd29615ee9f266a02827", size = 1968728, upload-time = "2025-10-14T10:20:08.353Z" }, + { url = "https://files.pythonhosted.org/packages/65/f5/6a66187775df87c24d526985b3a5d78d861580ca466fbd9d4d0e792fcf6c/pydantic_core-2.41.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ef9ee5471edd58d1fcce1c80ffc8783a650e3e3a193fe90d52e43bb4d87bff1f", size = 2050238, upload-time = "2025-10-14T10:20:09.766Z" }, + { url = "https://files.pythonhosted.org/packages/5e/b9/78336345de97298cf53236b2f271912ce11f32c1e59de25a374ce12f9cce/pydantic_core-2.41.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:15dd504af121caaf2c95cb90c0ebf71603c53de98305621b94da0f967e572def", size = 2249424, upload-time = "2025-10-14T10:20:11.732Z" }, + { url = "https://files.pythonhosted.org/packages/99/bb/a4584888b70ee594c3d374a71af5075a68654d6c780369df269118af7402/pydantic_core-2.41.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3a926768ea49a8af4d36abd6a8968b8790f7f76dd7cbd5a4c180db2b4ac9a3a2", size = 2366047, upload-time = "2025-10-14T10:20:13.647Z" }, + { url = "https://files.pythonhosted.org/packages/5f/8d/17fc5de9d6418e4d2ae8c675f905cdafdc59d3bf3bf9c946b7ab796a992a/pydantic_core-2.41.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6916b9b7d134bff5440098a4deb80e4cb623e68974a87883299de9124126c2a8", size = 2071163, upload-time = "2025-10-14T10:20:15.307Z" }, + { url = "https://files.pythonhosted.org/packages/54/e7/03d2c5c0b8ed37a4617430db68ec5e7dbba66358b629cd69e11b4d564367/pydantic_core-2.41.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5cf90535979089df02e6f17ffd076f07237efa55b7343d98760bde8743c4b265", size = 2190585, upload-time = "2025-10-14T10:20:17.3Z" }, + { url = "https://files.pythonhosted.org/packages/be/fc/15d1c9fe5ad9266a5897d9b932b7f53d7e5cfc800573917a2c5d6eea56ec/pydantic_core-2.41.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:7533c76fa647fade2d7ec75ac5cc079ab3f34879626dae5689b27790a6cf5a5c", size = 2150109, upload-time = "2025-10-14T10:20:19.143Z" }, + { url = "https://files.pythonhosted.org/packages/26/ef/e735dd008808226c83ba56972566138665b71477ad580fa5a21f0851df48/pydantic_core-2.41.4-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:37e516bca9264cbf29612539801ca3cd5d1be465f940417b002905e6ed79d38a", size = 2315078, upload-time = "2025-10-14T10:20:20.742Z" }, + { url = "https://files.pythonhosted.org/packages/90/00/806efdcf35ff2ac0f938362350cd9827b8afb116cc814b6b75cf23738c7c/pydantic_core-2.41.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0c19cb355224037c83642429b8ce261ae108e1c5fbf5c028bac63c77b0f8646e", size = 2318737, upload-time = "2025-10-14T10:20:22.306Z" }, + { url = "https://files.pythonhosted.org/packages/41/7e/6ac90673fe6cb36621a2283552897838c020db343fa86e513d3f563b196f/pydantic_core-2.41.4-cp311-cp311-win32.whl", hash = "sha256:09c2a60e55b357284b5f31f5ab275ba9f7f70b7525e18a132ec1f9160b4f1f03", size = 1974160, upload-time = "2025-10-14T10:20:23.817Z" }, + { url = "https://files.pythonhosted.org/packages/e0/9d/7c5e24ee585c1f8b6356e1d11d40ab807ffde44d2db3b7dfd6d20b09720e/pydantic_core-2.41.4-cp311-cp311-win_amd64.whl", hash = "sha256:711156b6afb5cb1cb7c14a2cc2c4a8b4c717b69046f13c6b332d8a0a8f41ca3e", size = 2021883, upload-time = "2025-10-14T10:20:25.48Z" }, + { url = "https://files.pythonhosted.org/packages/33/90/5c172357460fc28b2871eb4a0fb3843b136b429c6fa827e4b588877bf115/pydantic_core-2.41.4-cp311-cp311-win_arm64.whl", hash = "sha256:6cb9cf7e761f4f8a8589a45e49ed3c0d92d1d696a45a6feaee8c904b26efc2db", size = 1968026, upload-time = "2025-10-14T10:20:27.039Z" }, + { url = "https://files.pythonhosted.org/packages/e9/81/d3b3e95929c4369d30b2a66a91db63c8ed0a98381ae55a45da2cd1cc1288/pydantic_core-2.41.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:ab06d77e053d660a6faaf04894446df7b0a7e7aba70c2797465a0a1af00fc887", size = 2099043, upload-time = "2025-10-14T10:20:28.561Z" }, + { url = "https://files.pythonhosted.org/packages/58/da/46fdac49e6717e3a94fc9201403e08d9d61aa7a770fab6190b8740749047/pydantic_core-2.41.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c53ff33e603a9c1179a9364b0a24694f183717b2e0da2b5ad43c316c956901b2", size = 1910699, upload-time = "2025-10-14T10:20:30.217Z" }, + { url = "https://files.pythonhosted.org/packages/1e/63/4d948f1b9dd8e991a5a98b77dd66c74641f5f2e5225fee37994b2e07d391/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:304c54176af2c143bd181d82e77c15c41cbacea8872a2225dd37e6544dce9999", size = 1952121, upload-time = "2025-10-14T10:20:32.246Z" }, + { url = "https://files.pythonhosted.org/packages/b2/a7/e5fc60a6f781fc634ecaa9ecc3c20171d238794cef69ae0af79ac11b89d7/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:025ba34a4cf4fb32f917d5d188ab5e702223d3ba603be4d8aca2f82bede432a4", size = 2041590, upload-time = "2025-10-14T10:20:34.332Z" }, + { url = "https://files.pythonhosted.org/packages/70/69/dce747b1d21d59e85af433428978a1893c6f8a7068fa2bb4a927fba7a5ff/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b9f5f30c402ed58f90c70e12eff65547d3ab74685ffe8283c719e6bead8ef53f", size = 2219869, upload-time = "2025-10-14T10:20:35.965Z" }, + { url = "https://files.pythonhosted.org/packages/83/6a/c070e30e295403bf29c4df1cb781317b6a9bac7cd07b8d3acc94d501a63c/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd96e5d15385d301733113bcaa324c8bcf111275b7675a9c6e88bfb19fc05e3b", size = 2345169, upload-time = "2025-10-14T10:20:37.627Z" }, + { url = "https://files.pythonhosted.org/packages/f0/83/06d001f8043c336baea7fd202a9ac7ad71f87e1c55d8112c50b745c40324/pydantic_core-2.41.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98f348cbb44fae6e9653c1055db7e29de67ea6a9ca03a5fa2c2e11a47cff0e47", size = 2070165, upload-time = "2025-10-14T10:20:39.246Z" }, + { url = "https://files.pythonhosted.org/packages/14/0a/e567c2883588dd12bcbc110232d892cf385356f7c8a9910311ac997ab715/pydantic_core-2.41.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ec22626a2d14620a83ca583c6f5a4080fa3155282718b6055c2ea48d3ef35970", size = 2189067, upload-time = "2025-10-14T10:20:41.015Z" }, + { url = "https://files.pythonhosted.org/packages/f4/1d/3d9fca34273ba03c9b1c5289f7618bc4bd09c3ad2289b5420481aa051a99/pydantic_core-2.41.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3a95d4590b1f1a43bf33ca6d647b990a88f4a3824a8c4572c708f0b45a5290ed", size = 2132997, upload-time = "2025-10-14T10:20:43.106Z" }, + { url = "https://files.pythonhosted.org/packages/52/70/d702ef7a6cd41a8afc61f3554922b3ed8d19dd54c3bd4bdbfe332e610827/pydantic_core-2.41.4-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:f9672ab4d398e1b602feadcffcdd3af44d5f5e6ddc15bc7d15d376d47e8e19f8", size = 2307187, upload-time = "2025-10-14T10:20:44.849Z" }, + { url = "https://files.pythonhosted.org/packages/68/4c/c06be6e27545d08b802127914156f38d10ca287a9e8489342793de8aae3c/pydantic_core-2.41.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:84d8854db5f55fead3b579f04bda9a36461dab0730c5d570e1526483e7bb8431", size = 2305204, upload-time = "2025-10-14T10:20:46.781Z" }, + { url = "https://files.pythonhosted.org/packages/b0/e5/35ae4919bcd9f18603419e23c5eaf32750224a89d41a8df1a3704b69f77e/pydantic_core-2.41.4-cp312-cp312-win32.whl", hash = "sha256:9be1c01adb2ecc4e464392c36d17f97e9110fbbc906bcbe1c943b5b87a74aabd", size = 1972536, upload-time = "2025-10-14T10:20:48.39Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c2/49c5bb6d2a49eb2ee3647a93e3dae7080c6409a8a7558b075027644e879c/pydantic_core-2.41.4-cp312-cp312-win_amd64.whl", hash = "sha256:d682cf1d22bab22a5be08539dca3d1593488a99998f9f412137bc323179067ff", size = 2031132, upload-time = "2025-10-14T10:20:50.421Z" }, + { url = "https://files.pythonhosted.org/packages/06/23/936343dbcba6eec93f73e95eb346810fc732f71ba27967b287b66f7b7097/pydantic_core-2.41.4-cp312-cp312-win_arm64.whl", hash = "sha256:833eebfd75a26d17470b58768c1834dfc90141b7afc6eb0429c21fc5a21dcfb8", size = 1969483, upload-time = "2025-10-14T10:20:52.35Z" }, + { url = "https://files.pythonhosted.org/packages/13/d0/c20adabd181a029a970738dfe23710b52a31f1258f591874fcdec7359845/pydantic_core-2.41.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:85e050ad9e5f6fe1004eec65c914332e52f429bc0ae12d6fa2092407a462c746", size = 2105688, upload-time = "2025-10-14T10:20:54.448Z" }, + { url = "https://files.pythonhosted.org/packages/00/b6/0ce5c03cec5ae94cca220dfecddc453c077d71363b98a4bbdb3c0b22c783/pydantic_core-2.41.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7393f1d64792763a48924ba31d1e44c2cfbc05e3b1c2c9abb4ceeadd912cced", size = 1910807, upload-time = "2025-10-14T10:20:56.115Z" }, + { url = "https://files.pythonhosted.org/packages/68/3e/800d3d02c8beb0b5c069c870cbb83799d085debf43499c897bb4b4aaff0d/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94dab0940b0d1fb28bcab847adf887c66a27a40291eedf0b473be58761c9799a", size = 1956669, upload-time = "2025-10-14T10:20:57.874Z" }, + { url = "https://files.pythonhosted.org/packages/60/a4/24271cc71a17f64589be49ab8bd0751f6a0a03046c690df60989f2f95c2c/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:de7c42f897e689ee6f9e93c4bec72b99ae3b32a2ade1c7e4798e690ff5246e02", size = 2051629, upload-time = "2025-10-14T10:21:00.006Z" }, + { url = "https://files.pythonhosted.org/packages/68/de/45af3ca2f175d91b96bfb62e1f2d2f1f9f3b14a734afe0bfeff079f78181/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:664b3199193262277b8b3cd1e754fb07f2c6023289c815a1e1e8fb415cb247b1", size = 2224049, upload-time = "2025-10-14T10:21:01.801Z" }, + { url = "https://files.pythonhosted.org/packages/af/8f/ae4e1ff84672bf869d0a77af24fd78387850e9497753c432875066b5d622/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d95b253b88f7d308b1c0b417c4624f44553ba4762816f94e6986819b9c273fb2", size = 2342409, upload-time = "2025-10-14T10:21:03.556Z" }, + { url = "https://files.pythonhosted.org/packages/18/62/273dd70b0026a085c7b74b000394e1ef95719ea579c76ea2f0cc8893736d/pydantic_core-2.41.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1351f5bbdbbabc689727cb91649a00cb9ee7203e0a6e54e9f5ba9e22e384b84", size = 2069635, upload-time = "2025-10-14T10:21:05.385Z" }, + { url = "https://files.pythonhosted.org/packages/30/03/cf485fff699b4cdaea469bc481719d3e49f023241b4abb656f8d422189fc/pydantic_core-2.41.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1affa4798520b148d7182da0615d648e752de4ab1a9566b7471bc803d88a062d", size = 2194284, upload-time = "2025-10-14T10:21:07.122Z" }, + { url = "https://files.pythonhosted.org/packages/f9/7e/c8e713db32405dfd97211f2fc0a15d6bf8adb7640f3d18544c1f39526619/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7b74e18052fea4aa8dea2fb7dbc23d15439695da6cbe6cfc1b694af1115df09d", size = 2137566, upload-time = "2025-10-14T10:21:08.981Z" }, + { url = "https://files.pythonhosted.org/packages/04/f7/db71fd4cdccc8b75990f79ccafbbd66757e19f6d5ee724a6252414483fb4/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:285b643d75c0e30abda9dc1077395624f314a37e3c09ca402d4015ef5979f1a2", size = 2316809, upload-time = "2025-10-14T10:21:10.805Z" }, + { url = "https://files.pythonhosted.org/packages/76/63/a54973ddb945f1bca56742b48b144d85c9fc22f819ddeb9f861c249d5464/pydantic_core-2.41.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:f52679ff4218d713b3b33f88c89ccbf3a5c2c12ba665fb80ccc4192b4608dbab", size = 2311119, upload-time = "2025-10-14T10:21:12.583Z" }, + { url = "https://files.pythonhosted.org/packages/f8/03/5d12891e93c19218af74843a27e32b94922195ded2386f7b55382f904d2f/pydantic_core-2.41.4-cp313-cp313-win32.whl", hash = "sha256:ecde6dedd6fff127c273c76821bb754d793be1024bc33314a120f83a3c69460c", size = 1981398, upload-time = "2025-10-14T10:21:14.584Z" }, + { url = "https://files.pythonhosted.org/packages/be/d8/fd0de71f39db91135b7a26996160de71c073d8635edfce8b3c3681be0d6d/pydantic_core-2.41.4-cp313-cp313-win_amd64.whl", hash = "sha256:d081a1f3800f05409ed868ebb2d74ac39dd0c1ff6c035b5162356d76030736d4", size = 2030735, upload-time = "2025-10-14T10:21:16.432Z" }, + { url = "https://files.pythonhosted.org/packages/72/86/c99921c1cf6650023c08bfab6fe2d7057a5142628ef7ccfa9921f2dda1d5/pydantic_core-2.41.4-cp313-cp313-win_arm64.whl", hash = "sha256:f8e49c9c364a7edcbe2a310f12733aad95b022495ef2a8d653f645e5d20c1564", size = 1973209, upload-time = "2025-10-14T10:21:18.213Z" }, + { url = "https://files.pythonhosted.org/packages/36/0d/b5706cacb70a8414396efdda3d72ae0542e050b591119e458e2490baf035/pydantic_core-2.41.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:ed97fd56a561f5eb5706cebe94f1ad7c13b84d98312a05546f2ad036bafe87f4", size = 1877324, upload-time = "2025-10-14T10:21:20.363Z" }, + { url = "https://files.pythonhosted.org/packages/de/2d/cba1fa02cfdea72dfb3a9babb067c83b9dff0bbcb198368e000a6b756ea7/pydantic_core-2.41.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a870c307bf1ee91fc58a9a61338ff780d01bfae45922624816878dce784095d2", size = 1884515, upload-time = "2025-10-14T10:21:22.339Z" }, + { url = "https://files.pythonhosted.org/packages/07/ea/3df927c4384ed9b503c9cc2d076cf983b4f2adb0c754578dfb1245c51e46/pydantic_core-2.41.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d25e97bc1f5f8f7985bdc2335ef9e73843bb561eb1fa6831fdfc295c1c2061cf", size = 2042819, upload-time = "2025-10-14T10:21:26.683Z" }, + { url = "https://files.pythonhosted.org/packages/6a/ee/df8e871f07074250270a3b1b82aad4cd0026b588acd5d7d3eb2fcb1471a3/pydantic_core-2.41.4-cp313-cp313t-win_amd64.whl", hash = "sha256:d405d14bea042f166512add3091c1af40437c2e7f86988f3915fabd27b1e9cd2", size = 1995866, upload-time = "2025-10-14T10:21:28.951Z" }, + { url = "https://files.pythonhosted.org/packages/fc/de/b20f4ab954d6d399499c33ec4fafc46d9551e11dc1858fb7f5dca0748ceb/pydantic_core-2.41.4-cp313-cp313t-win_arm64.whl", hash = "sha256:19f3684868309db5263a11bace3c45d93f6f24afa2ffe75a647583df22a2ff89", size = 1970034, upload-time = "2025-10-14T10:21:30.869Z" }, + { url = "https://files.pythonhosted.org/packages/54/28/d3325da57d413b9819365546eb9a6e8b7cbd9373d9380efd5f74326143e6/pydantic_core-2.41.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:e9205d97ed08a82ebb9a307e92914bb30e18cdf6f6b12ca4bedadb1588a0bfe1", size = 2102022, upload-time = "2025-10-14T10:21:32.809Z" }, + { url = "https://files.pythonhosted.org/packages/9e/24/b58a1bc0d834bf1acc4361e61233ee217169a42efbdc15a60296e13ce438/pydantic_core-2.41.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:82df1f432b37d832709fbcc0e24394bba04a01b6ecf1ee87578145c19cde12ac", size = 1905495, upload-time = "2025-10-14T10:21:34.812Z" }, + { url = "https://files.pythonhosted.org/packages/fb/a4/71f759cc41b7043e8ecdaab81b985a9b6cad7cec077e0b92cff8b71ecf6b/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3b4cc4539e055cfa39a3763c939f9d409eb40e85813257dcd761985a108554", size = 1956131, upload-time = "2025-10-14T10:21:36.924Z" }, + { url = "https://files.pythonhosted.org/packages/b0/64/1e79ac7aa51f1eec7c4cda8cbe456d5d09f05fdd68b32776d72168d54275/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b1eb1754fce47c63d2ff57fdb88c351a6c0150995890088b33767a10218eaa4e", size = 2052236, upload-time = "2025-10-14T10:21:38.927Z" }, + { url = "https://files.pythonhosted.org/packages/e9/e3/a3ffc363bd4287b80f1d43dc1c28ba64831f8dfc237d6fec8f2661138d48/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e6ab5ab30ef325b443f379ddb575a34969c333004fca5a1daa0133a6ffaad616", size = 2223573, upload-time = "2025-10-14T10:21:41.574Z" }, + { url = "https://files.pythonhosted.org/packages/28/27/78814089b4d2e684a9088ede3790763c64693c3d1408ddc0a248bc789126/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:31a41030b1d9ca497634092b46481b937ff9397a86f9f51bd41c4767b6fc04af", size = 2342467, upload-time = "2025-10-14T10:21:44.018Z" }, + { url = "https://files.pythonhosted.org/packages/92/97/4de0e2a1159cb85ad737e03306717637842c88c7fd6d97973172fb183149/pydantic_core-2.41.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a44ac1738591472c3d020f61c6df1e4015180d6262ebd39bf2aeb52571b60f12", size = 2063754, upload-time = "2025-10-14T10:21:46.466Z" }, + { url = "https://files.pythonhosted.org/packages/0f/50/8cb90ce4b9efcf7ae78130afeb99fd1c86125ccdf9906ef64b9d42f37c25/pydantic_core-2.41.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d72f2b5e6e82ab8f94ea7d0d42f83c487dc159c5240d8f83beae684472864e2d", size = 2196754, upload-time = "2025-10-14T10:21:48.486Z" }, + { url = "https://files.pythonhosted.org/packages/34/3b/ccdc77af9cd5082723574a1cc1bcae7a6acacc829d7c0a06201f7886a109/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:c4d1e854aaf044487d31143f541f7aafe7b482ae72a022c664b2de2e466ed0ad", size = 2137115, upload-time = "2025-10-14T10:21:50.63Z" }, + { url = "https://files.pythonhosted.org/packages/ca/ba/e7c7a02651a8f7c52dc2cff2b64a30c313e3b57c7d93703cecea76c09b71/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b568af94267729d76e6ee5ececda4e283d07bbb28e8148bb17adad93d025d25a", size = 2317400, upload-time = "2025-10-14T10:21:52.959Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ba/6c533a4ee8aec6b812c643c49bb3bd88d3f01e3cebe451bb85512d37f00f/pydantic_core-2.41.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:6d55fb8b1e8929b341cc313a81a26e0d48aa3b519c1dbaadec3a6a2b4fcad025", size = 2312070, upload-time = "2025-10-14T10:21:55.419Z" }, + { url = "https://files.pythonhosted.org/packages/22/ae/f10524fcc0ab8d7f96cf9a74c880243576fd3e72bd8ce4f81e43d22bcab7/pydantic_core-2.41.4-cp314-cp314-win32.whl", hash = "sha256:5b66584e549e2e32a1398df11da2e0a7eff45d5c2d9db9d5667c5e6ac764d77e", size = 1982277, upload-time = "2025-10-14T10:21:57.474Z" }, + { url = "https://files.pythonhosted.org/packages/b4/dc/e5aa27aea1ad4638f0c3fb41132f7eb583bd7420ee63204e2d4333a3bbf9/pydantic_core-2.41.4-cp314-cp314-win_amd64.whl", hash = "sha256:557a0aab88664cc552285316809cab897716a372afaf8efdbef756f8b890e894", size = 2024608, upload-time = "2025-10-14T10:21:59.557Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/51d89cc2612bd147198e120a13f150afbf0bcb4615cddb049ab10b81b79e/pydantic_core-2.41.4-cp314-cp314-win_arm64.whl", hash = "sha256:3f1ea6f48a045745d0d9f325989d8abd3f1eaf47dd00485912d1a3a63c623a8d", size = 1967614, upload-time = "2025-10-14T10:22:01.847Z" }, + { url = "https://files.pythonhosted.org/packages/0d/c2/472f2e31b95eff099961fa050c376ab7156a81da194f9edb9f710f68787b/pydantic_core-2.41.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:6c1fe4c5404c448b13188dd8bd2ebc2bdd7e6727fa61ff481bcc2cca894018da", size = 1876904, upload-time = "2025-10-14T10:22:04.062Z" }, + { url = "https://files.pythonhosted.org/packages/4a/07/ea8eeb91173807ecdae4f4a5f4b150a520085b35454350fc219ba79e66a3/pydantic_core-2.41.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:523e7da4d43b113bf8e7b49fa4ec0c35bf4fe66b2230bfc5c13cc498f12c6c3e", size = 1882538, upload-time = "2025-10-14T10:22:06.39Z" }, + { url = "https://files.pythonhosted.org/packages/1e/29/b53a9ca6cd366bfc928823679c6a76c7a4c69f8201c0ba7903ad18ebae2f/pydantic_core-2.41.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5729225de81fb65b70fdb1907fcf08c75d498f4a6f15af005aabb1fdadc19dfa", size = 2041183, upload-time = "2025-10-14T10:22:08.812Z" }, + { url = "https://files.pythonhosted.org/packages/c7/3d/f8c1a371ceebcaf94d6dd2d77c6cf4b1c078e13a5837aee83f760b4f7cfd/pydantic_core-2.41.4-cp314-cp314t-win_amd64.whl", hash = "sha256:de2cfbb09e88f0f795fd90cf955858fc2c691df65b1f21f0aa00b99f3fbc661d", size = 1993542, upload-time = "2025-10-14T10:22:11.332Z" }, + { url = "https://files.pythonhosted.org/packages/8a/ac/9fc61b4f9d079482a290afe8d206b8f490e9fd32d4fc03ed4fc698214e01/pydantic_core-2.41.4-cp314-cp314t-win_arm64.whl", hash = "sha256:d34f950ae05a83e0ede899c595f312ca976023ea1db100cd5aa188f7005e3ab0", size = 1973897, upload-time = "2025-10-14T10:22:13.444Z" }, + { url = "https://files.pythonhosted.org/packages/b0/12/5ba58daa7f453454464f92b3ca7b9d7c657d8641c48e370c3ebc9a82dd78/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:a1b2cfec3879afb742a7b0bcfa53e4f22ba96571c9e54d6a3afe1052d17d843b", size = 2122139, upload-time = "2025-10-14T10:22:47.288Z" }, + { url = "https://files.pythonhosted.org/packages/21/fb/6860126a77725c3108baecd10fd3d75fec25191d6381b6eb2ac660228eac/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:d175600d975b7c244af6eb9c9041f10059f20b8bbffec9e33fdd5ee3f67cdc42", size = 1936674, upload-time = "2025-10-14T10:22:49.555Z" }, + { url = "https://files.pythonhosted.org/packages/de/be/57dcaa3ed595d81f8757e2b44a38240ac5d37628bce25fb20d02c7018776/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f184d657fa4947ae5ec9c47bd7e917730fa1cbb78195037e32dcbab50aca5ee", size = 1956398, upload-time = "2025-10-14T10:22:52.19Z" }, + { url = "https://files.pythonhosted.org/packages/2f/1d/679a344fadb9695f1a6a294d739fbd21d71fa023286daeea8c0ed49e7c2b/pydantic_core-2.41.4-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ed810568aeffed3edc78910af32af911c835cc39ebbfacd1f0ab5dd53028e5c", size = 2138674, upload-time = "2025-10-14T10:22:54.499Z" }, + { url = "https://files.pythonhosted.org/packages/c4/48/ae937e5a831b7c0dc646b2ef788c27cd003894882415300ed21927c21efa/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:4f5d640aeebb438517150fdeec097739614421900e4a08db4a3ef38898798537", size = 2112087, upload-time = "2025-10-14T10:22:56.818Z" }, + { url = "https://files.pythonhosted.org/packages/5e/db/6db8073e3d32dae017da7e0d16a9ecb897d0a4d92e00634916e486097961/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:4a9ab037b71927babc6d9e7fc01aea9e66dc2a4a34dff06ef0724a4049629f94", size = 1920387, upload-time = "2025-10-14T10:22:59.342Z" }, + { url = "https://files.pythonhosted.org/packages/0d/c1/dd3542d072fcc336030d66834872f0328727e3b8de289c662faa04aa270e/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4dab9484ec605c3016df9ad4fd4f9a390bc5d816a3b10c6550f8424bb80b18c", size = 1951495, upload-time = "2025-10-14T10:23:02.089Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c6/db8d13a1f8ab3f1eb08c88bd00fd62d44311e3456d1e85c0e59e0a0376e7/pydantic_core-2.41.4-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8a5028425820731d8c6c098ab642d7b8b999758e24acae03ed38a66eca8335", size = 2139008, upload-time = "2025-10-14T10:23:04.539Z" }, + { url = "https://files.pythonhosted.org/packages/7e/7d/138e902ed6399b866f7cfe4435d22445e16fff888a1c00560d9dc79a780f/pydantic_core-2.41.4-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:491535d45cd7ad7e4a2af4a5169b0d07bebf1adfd164b0368da8aa41e19907a5", size = 2104721, upload-time = "2025-10-14T10:23:26.906Z" }, + { url = "https://files.pythonhosted.org/packages/47/13/0525623cf94627f7b53b4c2034c81edc8491cbfc7c28d5447fa318791479/pydantic_core-2.41.4-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:54d86c0cada6aba4ec4c047d0e348cbad7063b87ae0f005d9f8c9ad04d4a92a2", size = 1931608, upload-time = "2025-10-14T10:23:29.306Z" }, + { url = "https://files.pythonhosted.org/packages/d6/f9/744bc98137d6ef0a233f808bfc9b18cf94624bf30836a18d3b05d08bf418/pydantic_core-2.41.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eca1124aced216b2500dc2609eade086d718e8249cb9696660ab447d50a758bd", size = 2132986, upload-time = "2025-10-14T10:23:32.057Z" }, + { url = "https://files.pythonhosted.org/packages/17/c8/629e88920171173f6049386cc71f893dff03209a9ef32b4d2f7e7c264bcf/pydantic_core-2.41.4-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6c9024169becccf0cb470ada03ee578d7348c119a0d42af3dcf9eda96e3a247c", size = 2187516, upload-time = "2025-10-14T10:23:34.871Z" }, + { url = "https://files.pythonhosted.org/packages/2e/0f/4f2734688d98488782218ca61bcc118329bf5de05bb7fe3adc7dd79b0b86/pydantic_core-2.41.4-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:26895a4268ae5a2849269f4991cdc97236e4b9c010e51137becf25182daac405", size = 2146146, upload-time = "2025-10-14T10:23:37.342Z" }, + { url = "https://files.pythonhosted.org/packages/ed/f2/ab385dbd94a052c62224b99cf99002eee99dbec40e10006c78575aead256/pydantic_core-2.41.4-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:ca4df25762cf71308c446e33c9b1fdca2923a3f13de616e2a949f38bf21ff5a8", size = 2311296, upload-time = "2025-10-14T10:23:40.145Z" }, + { url = "https://files.pythonhosted.org/packages/fc/8e/e4f12afe1beeb9823bba5375f8f258df0cc61b056b0195fb1cf9f62a1a58/pydantic_core-2.41.4-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:5a28fcedd762349519276c36634e71853b4541079cab4acaaac60c4421827308", size = 2315386, upload-time = "2025-10-14T10:23:42.624Z" }, + { url = "https://files.pythonhosted.org/packages/48/f7/925f65d930802e3ea2eb4d5afa4cb8730c8dc0d2cb89a59dc4ed2fcb2d74/pydantic_core-2.41.4-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c173ddcd86afd2535e2b695217e82191580663a1d1928239f877f5a1649ef39f", size = 2147775, upload-time = "2025-10-14T10:23:45.406Z" }, +] + +[[package]] +name = "pydantic-settings" +version = "2.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/20/c5/dbbc27b814c71676593d1c3f718e6cd7d4f00652cefa24b75f7aa3efb25e/pydantic_settings-2.11.0.tar.gz", hash = "sha256:d0e87a1c7d33593beb7194adb8470fc426e95ba02af83a0f23474a04c9a08180", size = 188394, upload-time = "2025-09-24T14:19:11.764Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/d6/887a1ff844e64aa823fb4905978d882a633cfe295c32eacad582b78a7d8b/pydantic_settings-2.11.0-py3-none-any.whl", hash = "sha256:fe2cea3413b9530d10f3a5875adffb17ada5c1e1bab0b2885546d7310415207c", size = 48608, upload-time = "2025-09-24T14:19:10.015Z" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, +] + +[[package]] +name = "pyjwt" +version = "2.10.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/46/bd74733ff231675599650d3e47f361794b22ef3e3770998dda30d3b63726/pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953", size = 87785, upload-time = "2024-11-28T03:43:29.933Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/ad/689f02752eeec26aed679477e80e632ef1b682313be70793d798c1d5fc8f/PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb", size = 22997, upload-time = "2024-11-28T03:43:27.893Z" }, +] + +[package.optional-dependencies] +crypto = [ + { name = "cryptography" }, +] + +[[package]] +name = "pyperclip" +version = "1.11.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/52/d87eba7cb129b81563019d1679026e7a112ef76855d6159d24754dbd2a51/pyperclip-1.11.0.tar.gz", hash = "sha256:244035963e4428530d9e3a6101a1ef97209c6825edab1567beac148ccc1db1b6", size = 12185, upload-time = "2025-09-26T14:40:37.245Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/80/fc9d01d5ed37ba4c42ca2b55b4339ae6e200b456be3a1aaddf4a9fa99b8c/pyperclip-1.11.0-py3-none-any.whl", hash = "sha256:299403e9ff44581cb9ba2ffeed69c7aa96a008622ad0c46cb575ca75b5b84273", size = 11063, upload-time = "2025-09-26T14:40:36.069Z" }, +] + +[[package]] +name = "pytest" +version = "8.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a3/5c/00a0e072241553e1a7496d638deababa67c5058571567b92a7eaa258397c/pytest-8.4.2.tar.gz", hash = "sha256:86c0d0b93306b961d58d62a4db4879f27fe25513d4b969df351abdddb3c30e01", size = 1519618, upload-time = "2025-09-04T14:34:22.711Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a8/a4/20da314d277121d6534b3a980b29035dcd51e6744bd79075a6ce8fa4eb8d/pytest-8.4.2-py3-none-any.whl", hash = "sha256:872f880de3fc3a5bdc88a11b39c9710c3497a547cfa9320bc3c5e62fbf272e79", size = 365750, upload-time = "2025-09-04T14:34:20.226Z" }, +] + +[[package]] +name = "pytest-asyncio" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/86/9e3c5f48f7b7b638b216e4b9e645f54d199d7abbbab7a64a13b4e12ba10f/pytest_asyncio-1.2.0.tar.gz", hash = "sha256:c609a64a2a8768462d0c99811ddb8bd2583c33fd33cf7f21af1c142e824ffb57", size = 50119, upload-time = "2025-09-12T07:33:53.816Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/93/2fa34714b7a4ae72f2f8dad66ba17dd9a2c793220719e736dda28b7aec27/pytest_asyncio-1.2.0-py3-none-any.whl", hash = "sha256:8e17ae5e46d8e7efe51ab6494dd2010f4ca8dae51652aa3c8d55acf50bfb2e99", size = 15095, upload-time = "2025-09-12T07:33:52.639Z" }, +] + +[[package]] +name = "pytest-cov" +version = "7.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "coverage", extra = ["toml"] }, + { name = "pluggy" }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5e/f7/c933acc76f5208b3b00089573cf6a2bc26dc80a8aece8f52bb7d6b1855ca/pytest_cov-7.0.0.tar.gz", hash = "sha256:33c97eda2e049a0c5298e91f519302a1334c26ac65c1a483d6206fd458361af1", size = 54328, upload-time = "2025-09-09T10:57:02.113Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/49/1377b49de7d0c1ce41292161ea0f721913fa8722c19fb9c1e3aa0367eecb/pytest_cov-7.0.0-py3-none-any.whl", hash = "sha256:3b8e9558b16cc1479da72058bdecf8073661c7f57f7d3c5f22a1c23507f2d861", size = 22424, upload-time = "2025-09-09T10:57:00.695Z" }, +] + +[[package]] +name = "pytest-recording" +version = "0.13.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, + { name = "vcrpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/32/9c/f4027c5f1693847b06d11caf4b4f6bb09f22c1581ada4663877ec166b8c6/pytest_recording-0.13.4.tar.gz", hash = "sha256:568d64b2a85992eec4ae0a419c855d5fd96782c5fb016784d86f18053792768c", size = 26576, upload-time = "2025-05-08T10:41:11.231Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/c2/ce34735972cc42d912173e79f200fe66530225190c06655c5632a9d88f1e/pytest_recording-0.13.4-py3-none-any.whl", hash = "sha256:ad49a434b51b1c4f78e85b1e6b74fdcc2a0a581ca16e52c798c6ace971f7f439", size = 13723, upload-time = "2025-05-08T10:41:09.684Z" }, +] + +[[package]] +name = "python-dotenv" +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f0/26/19cadc79a718c5edbec86fd4919a6b6d3f681039a2f6d66d14be94e75fb9/python_dotenv-1.2.1.tar.gz", hash = "sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6", size = 44221, upload-time = "2025-10-26T15:12:10.434Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61", size = 21230, upload-time = "2025-10-26T15:12:09.109Z" }, +] + +[[package]] +name = "python-multipart" +version = "0.0.20" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/87/f44d7c9f274c7ee665a29b885ec97089ec5dc034c7f3fafa03da9e39a09e/python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13", size = 37158, upload-time = "2024-12-16T19:45:46.972Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/45/58/38b5afbc1a800eeea951b9285d3912613f2603bdf897a4ab0f4bd7f405fc/python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104", size = 24546, upload-time = "2024-12-16T19:45:44.423Z" }, +] + +[[package]] +name = "pywin32" +version = "311" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/af/449a6a91e5d6db51420875c54f6aff7c97a86a3b13a0b4f1a5c13b988de3/pywin32-311-cp311-cp311-win32.whl", hash = "sha256:184eb5e436dea364dcd3d2316d577d625c0351bf237c4e9a5fabbcfa5a58b151", size = 8697031, upload-time = "2025-07-14T20:13:13.266Z" }, + { url = "https://files.pythonhosted.org/packages/51/8f/9bb81dd5bb77d22243d33c8397f09377056d5c687aa6d4042bea7fbf8364/pywin32-311-cp311-cp311-win_amd64.whl", hash = "sha256:3ce80b34b22b17ccbd937a6e78e7225d80c52f5ab9940fe0506a1a16f3dab503", size = 9508308, upload-time = "2025-07-14T20:13:15.147Z" }, + { url = "https://files.pythonhosted.org/packages/44/7b/9c2ab54f74a138c491aba1b1cd0795ba61f144c711daea84a88b63dc0f6c/pywin32-311-cp311-cp311-win_arm64.whl", hash = "sha256:a733f1388e1a842abb67ffa8e7aad0e70ac519e09b0f6a784e65a136ec7cefd2", size = 8703930, upload-time = "2025-07-14T20:13:16.945Z" }, + { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543, upload-time = "2025-07-14T20:13:20.765Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040, upload-time = "2025-07-14T20:13:22.543Z" }, + { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102, upload-time = "2025-07-14T20:13:24.682Z" }, + { url = "https://files.pythonhosted.org/packages/a5/be/3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3/pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d", size = 8705700, upload-time = "2025-07-14T20:13:26.471Z" }, + { url = "https://files.pythonhosted.org/packages/e3/28/e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c/pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d", size = 9494700, upload-time = "2025-07-14T20:13:28.243Z" }, + { url = "https://files.pythonhosted.org/packages/04/bf/90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a/pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a", size = 8709318, upload-time = "2025-07-14T20:13:30.348Z" }, + { url = "https://files.pythonhosted.org/packages/c9/31/097f2e132c4f16d99a22bfb777e0fd88bd8e1c634304e102f313af69ace5/pywin32-311-cp314-cp314-win32.whl", hash = "sha256:b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee", size = 8840714, upload-time = "2025-07-14T20:13:32.449Z" }, + { url = "https://files.pythonhosted.org/packages/90/4b/07c77d8ba0e01349358082713400435347df8426208171ce297da32c313d/pywin32-311-cp314-cp314-win_amd64.whl", hash = "sha256:3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87", size = 9656800, upload-time = "2025-07-14T20:13:34.312Z" }, + { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540, upload-time = "2025-07-14T20:13:36.379Z" }, +] + +[[package]] +name = "pywin32-ctypes" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", size = 29471, upload-time = "2024-08-14T10:15:34.626Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756, upload-time = "2024-08-14T10:15:33.187Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, + { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, + { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, + { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" }, + { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" }, + { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" }, + { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" }, + { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" }, + { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" }, + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, +] + +[[package]] +name = "referencing" +version = "0.36.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2f/db/98b5c277be99dd18bfd91dd04e1b759cad18d1a338188c936e92f921c7e2/referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa", size = 74744, upload-time = "2025-01-25T08:48:16.138Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/b1/3baf80dc6d2b7bc27a95a67752d0208e410351e3feb4eb78de5f77454d8d/referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0", size = 26775, upload-time = "2025-01-25T08:48:14.241Z" }, +] + +[[package]] +name = "requests" +version = "2.32.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3", version = "1.26.20", source = { registry = "https://pypi.org/simple" }, marker = "platform_python_implementation == 'PyPy'" }, + { name = "urllib3", version = "2.5.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, +] + +[[package]] +name = "rich" +version = "14.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fb/d2/8920e102050a0de7bfabeb4c4614a49248cf8d5d7a8d01885fbb24dc767a/rich-14.2.0.tar.gz", hash = "sha256:73ff50c7c0c1c77c8243079283f4edb376f0f6442433aecb8ce7e6d0b92d1fe4", size = 219990, upload-time = "2025-10-09T14:16:53.064Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/25/7a/b0178788f8dc6cafce37a212c99565fa1fe7872c70c6c9c1e1a372d9d88f/rich-14.2.0-py3-none-any.whl", hash = "sha256:76bc51fe2e57d2b1be1f96c524b890b816e334ab4c1e45888799bfaab0021edd", size = 243393, upload-time = "2025-10-09T14:16:51.245Z" }, +] + +[[package]] +name = "rich-rst" +version = "1.3.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docutils" }, + { name = "rich" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bc/6d/a506aaa4a9eaa945ed8ab2b7347859f53593864289853c5d6d62b77246e0/rich_rst-1.3.2.tar.gz", hash = "sha256:a1196fdddf1e364b02ec68a05e8ff8f6914fee10fbca2e6b6735f166bb0da8d4", size = 14936, upload-time = "2025-10-14T16:49:45.332Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/2f/b4530fbf948867702d0a3f27de4a6aab1d156f406d72852ab902c4d04de9/rich_rst-1.3.2-py3-none-any.whl", hash = "sha256:a99b4907cbe118cf9d18b0b44de272efa61f15117c61e39ebdc431baf5df722a", size = 12567, upload-time = "2025-10-14T16:49:42.953Z" }, +] + +[[package]] +name = "rpds-py" +version = "0.28.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/48/dc/95f074d43452b3ef5d06276696ece4b3b5d696e7c9ad7173c54b1390cd70/rpds_py-0.28.0.tar.gz", hash = "sha256:abd4df20485a0983e2ca334a216249b6186d6e3c1627e106651943dbdb791aea", size = 27419, upload-time = "2025-10-22T22:24:29.327Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/34/058d0db5471c6be7bef82487ad5021ff8d1d1d27794be8730aad938649cf/rpds_py-0.28.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:03065002fd2e287725d95fbc69688e0c6daf6c6314ba38bdbaa3895418e09296", size = 362344, upload-time = "2025-10-22T22:21:39.713Z" }, + { url = "https://files.pythonhosted.org/packages/5d/67/9503f0ec8c055a0782880f300c50a2b8e5e72eb1f94dfc2053da527444dd/rpds_py-0.28.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:28ea02215f262b6d078daec0b45344c89e161eab9526b0d898221d96fdda5f27", size = 348440, upload-time = "2025-10-22T22:21:41.056Z" }, + { url = "https://files.pythonhosted.org/packages/68/2e/94223ee9b32332a41d75b6f94b37b4ce3e93878a556fc5f152cbd856a81f/rpds_py-0.28.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25dbade8fbf30bcc551cb352376c0ad64b067e4fc56f90e22ba70c3ce205988c", size = 379068, upload-time = "2025-10-22T22:21:42.593Z" }, + { url = "https://files.pythonhosted.org/packages/b4/25/54fd48f9f680cfc44e6a7f39a5fadf1d4a4a1fd0848076af4a43e79f998c/rpds_py-0.28.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3c03002f54cc855860bfdc3442928ffdca9081e73b5b382ed0b9e8efe6e5e205", size = 390518, upload-time = "2025-10-22T22:21:43.998Z" }, + { url = "https://files.pythonhosted.org/packages/1b/85/ac258c9c27f2ccb1bd5d0697e53a82ebcf8088e3186d5d2bf8498ee7ed44/rpds_py-0.28.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b9699fa7990368b22032baf2b2dce1f634388e4ffc03dfefaaac79f4695edc95", size = 525319, upload-time = "2025-10-22T22:21:45.645Z" }, + { url = "https://files.pythonhosted.org/packages/40/cb/c6734774789566d46775f193964b76627cd5f42ecf246d257ce84d1912ed/rpds_py-0.28.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b9b06fe1a75e05e0713f06ea0c89ecb6452210fd60e2f1b6ddc1067b990e08d9", size = 404896, upload-time = "2025-10-22T22:21:47.544Z" }, + { url = "https://files.pythonhosted.org/packages/1f/53/14e37ce83202c632c89b0691185dca9532288ff9d390eacae3d2ff771bae/rpds_py-0.28.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac9f83e7b326a3f9ec3ef84cda98fb0a74c7159f33e692032233046e7fd15da2", size = 382862, upload-time = "2025-10-22T22:21:49.176Z" }, + { url = "https://files.pythonhosted.org/packages/6a/83/f3642483ca971a54d60caa4449f9d6d4dbb56a53e0072d0deff51b38af74/rpds_py-0.28.0-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:0d3259ea9ad8743a75a43eb7819324cdab393263c91be86e2d1901ee65c314e0", size = 398848, upload-time = "2025-10-22T22:21:51.024Z" }, + { url = "https://files.pythonhosted.org/packages/44/09/2d9c8b2f88e399b4cfe86efdf2935feaf0394e4f14ab30c6c5945d60af7d/rpds_py-0.28.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9a7548b345f66f6695943b4ef6afe33ccd3f1b638bd9afd0f730dd255c249c9e", size = 412030, upload-time = "2025-10-22T22:21:52.665Z" }, + { url = "https://files.pythonhosted.org/packages/dd/f5/e1cec473d4bde6df1fd3738be8e82d64dd0600868e76e92dfeaebbc2d18f/rpds_py-0.28.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c9a40040aa388b037eb39416710fbcce9443498d2eaab0b9b45ae988b53f5c67", size = 559700, upload-time = "2025-10-22T22:21:54.123Z" }, + { url = "https://files.pythonhosted.org/packages/8d/be/73bb241c1649edbf14e98e9e78899c2c5e52bbe47cb64811f44d2cc11808/rpds_py-0.28.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8f60c7ea34e78c199acd0d3cda37a99be2c861dd2b8cf67399784f70c9f8e57d", size = 584581, upload-time = "2025-10-22T22:21:56.102Z" }, + { url = "https://files.pythonhosted.org/packages/9c/9c/ffc6e9218cd1eb5c2c7dbd276c87cd10e8c2232c456b554169eb363381df/rpds_py-0.28.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1571ae4292649100d743b26d5f9c63503bb1fedf538a8f29a98dce2d5ba6b4e6", size = 549981, upload-time = "2025-10-22T22:21:58.253Z" }, + { url = "https://files.pythonhosted.org/packages/5f/50/da8b6d33803a94df0149345ee33e5d91ed4d25fc6517de6a25587eae4133/rpds_py-0.28.0-cp311-cp311-win32.whl", hash = "sha256:5cfa9af45e7c1140af7321fa0bef25b386ee9faa8928c80dc3a5360971a29e8c", size = 214729, upload-time = "2025-10-22T22:21:59.625Z" }, + { url = "https://files.pythonhosted.org/packages/12/fd/b0f48c4c320ee24c8c20df8b44acffb7353991ddf688af01eef5f93d7018/rpds_py-0.28.0-cp311-cp311-win_amd64.whl", hash = "sha256:dd8d86b5d29d1b74100982424ba53e56033dc47720a6de9ba0259cf81d7cecaa", size = 223977, upload-time = "2025-10-22T22:22:01.092Z" }, + { url = "https://files.pythonhosted.org/packages/b4/21/c8e77a2ac66e2ec4e21f18a04b4e9a0417ecf8e61b5eaeaa9360a91713b4/rpds_py-0.28.0-cp311-cp311-win_arm64.whl", hash = "sha256:4e27d3a5709cc2b3e013bf93679a849213c79ae0573f9b894b284b55e729e120", size = 217326, upload-time = "2025-10-22T22:22:02.944Z" }, + { url = "https://files.pythonhosted.org/packages/b8/5c/6c3936495003875fe7b14f90ea812841a08fca50ab26bd840e924097d9c8/rpds_py-0.28.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:6b4f28583a4f247ff60cd7bdda83db8c3f5b05a7a82ff20dd4b078571747708f", size = 366439, upload-time = "2025-10-22T22:22:04.525Z" }, + { url = "https://files.pythonhosted.org/packages/56/f9/a0f1ca194c50aa29895b442771f036a25b6c41a35e4f35b1a0ea713bedae/rpds_py-0.28.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d678e91b610c29c4b3d52a2c148b641df2b4676ffe47c59f6388d58b99cdc424", size = 348170, upload-time = "2025-10-22T22:22:06.397Z" }, + { url = "https://files.pythonhosted.org/packages/18/ea/42d243d3a586beb72c77fa5def0487daf827210069a95f36328e869599ea/rpds_py-0.28.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e819e0e37a44a78e1383bf1970076e2ccc4dc8c2bbaa2f9bd1dc987e9afff628", size = 378838, upload-time = "2025-10-22T22:22:07.932Z" }, + { url = "https://files.pythonhosted.org/packages/e7/78/3de32e18a94791af8f33601402d9d4f39613136398658412a4e0b3047327/rpds_py-0.28.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5ee514e0f0523db5d3fb171f397c54875dbbd69760a414dccf9d4d7ad628b5bd", size = 393299, upload-time = "2025-10-22T22:22:09.435Z" }, + { url = "https://files.pythonhosted.org/packages/13/7e/4bdb435afb18acea2eb8a25ad56b956f28de7c59f8a1d32827effa0d4514/rpds_py-0.28.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5f3fa06d27fdcee47f07a39e02862da0100cb4982508f5ead53ec533cd5fe55e", size = 518000, upload-time = "2025-10-22T22:22:11.326Z" }, + { url = "https://files.pythonhosted.org/packages/31/d0/5f52a656875cdc60498ab035a7a0ac8f399890cc1ee73ebd567bac4e39ae/rpds_py-0.28.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:46959ef2e64f9e4a41fc89aa20dbca2b85531f9a72c21099a3360f35d10b0d5a", size = 408746, upload-time = "2025-10-22T22:22:13.143Z" }, + { url = "https://files.pythonhosted.org/packages/3e/cd/49ce51767b879cde77e7ad9fae164ea15dce3616fe591d9ea1df51152706/rpds_py-0.28.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8455933b4bcd6e83fde3fefc987a023389c4b13f9a58c8d23e4b3f6d13f78c84", size = 386379, upload-time = "2025-10-22T22:22:14.602Z" }, + { url = "https://files.pythonhosted.org/packages/6a/99/e4e1e1ee93a98f72fc450e36c0e4d99c35370220e815288e3ecd2ec36a2a/rpds_py-0.28.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:ad50614a02c8c2962feebe6012b52f9802deec4263946cddea37aaf28dd25a66", size = 401280, upload-time = "2025-10-22T22:22:16.063Z" }, + { url = "https://files.pythonhosted.org/packages/61/35/e0c6a57488392a8b319d2200d03dad2b29c0db9996f5662c3b02d0b86c02/rpds_py-0.28.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e5deca01b271492553fdb6c7fd974659dce736a15bae5dad7ab8b93555bceb28", size = 412365, upload-time = "2025-10-22T22:22:17.504Z" }, + { url = "https://files.pythonhosted.org/packages/ff/6a/841337980ea253ec797eb084665436007a1aad0faac1ba097fb906c5f69c/rpds_py-0.28.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:735f8495a13159ce6a0d533f01e8674cec0c57038c920495f87dcb20b3ddb48a", size = 559573, upload-time = "2025-10-22T22:22:19.108Z" }, + { url = "https://files.pythonhosted.org/packages/e7/5e/64826ec58afd4c489731f8b00729c5f6afdb86f1df1df60bfede55d650bb/rpds_py-0.28.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:961ca621ff10d198bbe6ba4957decca61aa2a0c56695384c1d6b79bf61436df5", size = 583973, upload-time = "2025-10-22T22:22:20.768Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ee/44d024b4843f8386a4eeaa4c171b3d31d55f7177c415545fd1a24c249b5d/rpds_py-0.28.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2374e16cc9131022e7d9a8f8d65d261d9ba55048c78f3b6e017971a4f5e6353c", size = 553800, upload-time = "2025-10-22T22:22:22.25Z" }, + { url = "https://files.pythonhosted.org/packages/7d/89/33e675dccff11a06d4d85dbb4d1865f878d5020cbb69b2c1e7b2d3f82562/rpds_py-0.28.0-cp312-cp312-win32.whl", hash = "sha256:d15431e334fba488b081d47f30f091e5d03c18527c325386091f31718952fe08", size = 216954, upload-time = "2025-10-22T22:22:24.105Z" }, + { url = "https://files.pythonhosted.org/packages/af/36/45f6ebb3210887e8ee6dbf1bc710ae8400bb417ce165aaf3024b8360d999/rpds_py-0.28.0-cp312-cp312-win_amd64.whl", hash = "sha256:a410542d61fc54710f750d3764380b53bf09e8c4edbf2f9141a82aa774a04f7c", size = 227844, upload-time = "2025-10-22T22:22:25.551Z" }, + { url = "https://files.pythonhosted.org/packages/57/91/f3fb250d7e73de71080f9a221d19bd6a1c1eb0d12a1ea26513f6c1052ad6/rpds_py-0.28.0-cp312-cp312-win_arm64.whl", hash = "sha256:1f0cfd1c69e2d14f8c892b893997fa9a60d890a0c8a603e88dca4955f26d1edd", size = 217624, upload-time = "2025-10-22T22:22:26.914Z" }, + { url = "https://files.pythonhosted.org/packages/d3/03/ce566d92611dfac0085c2f4b048cd53ed7c274a5c05974b882a908d540a2/rpds_py-0.28.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e9e184408a0297086f880556b6168fa927d677716f83d3472ea333b42171ee3b", size = 366235, upload-time = "2025-10-22T22:22:28.397Z" }, + { url = "https://files.pythonhosted.org/packages/00/34/1c61da1b25592b86fd285bd7bd8422f4c9d748a7373b46126f9ae792a004/rpds_py-0.28.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:edd267266a9b0448f33dc465a97cfc5d467594b600fe28e7fa2f36450e03053a", size = 348241, upload-time = "2025-10-22T22:22:30.171Z" }, + { url = "https://files.pythonhosted.org/packages/fc/00/ed1e28616848c61c493a067779633ebf4b569eccaacf9ccbdc0e7cba2b9d/rpds_py-0.28.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85beb8b3f45e4e32f6802fb6cd6b17f615ef6c6a52f265371fb916fae02814aa", size = 378079, upload-time = "2025-10-22T22:22:31.644Z" }, + { url = "https://files.pythonhosted.org/packages/11/b2/ccb30333a16a470091b6e50289adb4d3ec656fd9951ba8c5e3aaa0746a67/rpds_py-0.28.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d2412be8d00a1b895f8ad827cc2116455196e20ed994bb704bf138fe91a42724", size = 393151, upload-time = "2025-10-22T22:22:33.453Z" }, + { url = "https://files.pythonhosted.org/packages/8c/d0/73e2217c3ee486d555cb84920597480627d8c0240ff3062005c6cc47773e/rpds_py-0.28.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cf128350d384b777da0e68796afdcebc2e9f63f0e9f242217754e647f6d32491", size = 517520, upload-time = "2025-10-22T22:22:34.949Z" }, + { url = "https://files.pythonhosted.org/packages/c4/91/23efe81c700427d0841a4ae7ea23e305654381831e6029499fe80be8a071/rpds_py-0.28.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a2036d09b363aa36695d1cc1a97b36865597f4478470b0697b5ee9403f4fe399", size = 408699, upload-time = "2025-10-22T22:22:36.584Z" }, + { url = "https://files.pythonhosted.org/packages/ca/ee/a324d3198da151820a326c1f988caaa4f37fc27955148a76fff7a2d787a9/rpds_py-0.28.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8e1e9be4fa6305a16be628959188e4fd5cd6f1b0e724d63c6d8b2a8adf74ea6", size = 385720, upload-time = "2025-10-22T22:22:38.014Z" }, + { url = "https://files.pythonhosted.org/packages/19/ad/e68120dc05af8b7cab4a789fccd8cdcf0fe7e6581461038cc5c164cd97d2/rpds_py-0.28.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:0a403460c9dd91a7f23fc3188de6d8977f1d9603a351d5db6cf20aaea95b538d", size = 401096, upload-time = "2025-10-22T22:22:39.869Z" }, + { url = "https://files.pythonhosted.org/packages/99/90/c1e070620042459d60df6356b666bb1f62198a89d68881816a7ed121595a/rpds_py-0.28.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d7366b6553cdc805abcc512b849a519167db8f5e5c3472010cd1228b224265cb", size = 411465, upload-time = "2025-10-22T22:22:41.395Z" }, + { url = "https://files.pythonhosted.org/packages/68/61/7c195b30d57f1b8d5970f600efee72a4fad79ec829057972e13a0370fd24/rpds_py-0.28.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5b43c6a3726efd50f18d8120ec0551241c38785b68952d240c45ea553912ac41", size = 558832, upload-time = "2025-10-22T22:22:42.871Z" }, + { url = "https://files.pythonhosted.org/packages/b0/3d/06f3a718864773f69941d4deccdf18e5e47dd298b4628062f004c10f3b34/rpds_py-0.28.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0cb7203c7bc69d7c1585ebb33a2e6074492d2fc21ad28a7b9d40457ac2a51ab7", size = 583230, upload-time = "2025-10-22T22:22:44.877Z" }, + { url = "https://files.pythonhosted.org/packages/66/df/62fc783781a121e77fee9a21ead0a926f1b652280a33f5956a5e7833ed30/rpds_py-0.28.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7a52a5169c664dfb495882adc75c304ae1d50df552fbd68e100fdc719dee4ff9", size = 553268, upload-time = "2025-10-22T22:22:46.441Z" }, + { url = "https://files.pythonhosted.org/packages/84/85/d34366e335140a4837902d3dea89b51f087bd6a63c993ebdff59e93ee61d/rpds_py-0.28.0-cp313-cp313-win32.whl", hash = "sha256:2e42456917b6687215b3e606ab46aa6bca040c77af7df9a08a6dcfe8a4d10ca5", size = 217100, upload-time = "2025-10-22T22:22:48.342Z" }, + { url = "https://files.pythonhosted.org/packages/3c/1c/f25a3f3752ad7601476e3eff395fe075e0f7813fbb9862bd67c82440e880/rpds_py-0.28.0-cp313-cp313-win_amd64.whl", hash = "sha256:e0a0311caedc8069d68fc2bf4c9019b58a2d5ce3cd7cb656c845f1615b577e1e", size = 227759, upload-time = "2025-10-22T22:22:50.219Z" }, + { url = "https://files.pythonhosted.org/packages/e0/d6/5f39b42b99615b5bc2f36ab90423ea404830bdfee1c706820943e9a645eb/rpds_py-0.28.0-cp313-cp313-win_arm64.whl", hash = "sha256:04c1b207ab8b581108801528d59ad80aa83bb170b35b0ddffb29c20e411acdc1", size = 217326, upload-time = "2025-10-22T22:22:51.647Z" }, + { url = "https://files.pythonhosted.org/packages/5c/8b/0c69b72d1cee20a63db534be0df271effe715ef6c744fdf1ff23bb2b0b1c/rpds_py-0.28.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:f296ea3054e11fc58ad42e850e8b75c62d9a93a9f981ad04b2e5ae7d2186ff9c", size = 355736, upload-time = "2025-10-22T22:22:53.211Z" }, + { url = "https://files.pythonhosted.org/packages/f7/6d/0c2ee773cfb55c31a8514d2cece856dd299170a49babd50dcffb15ddc749/rpds_py-0.28.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5a7306c19b19005ad98468fcefeb7100b19c79fc23a5f24a12e06d91181193fa", size = 342677, upload-time = "2025-10-22T22:22:54.723Z" }, + { url = "https://files.pythonhosted.org/packages/e2/1c/22513ab25a27ea205144414724743e305e8153e6abe81833b5e678650f5a/rpds_py-0.28.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5d9b86aa501fed9862a443c5c3116f6ead8bc9296185f369277c42542bd646b", size = 371847, upload-time = "2025-10-22T22:22:56.295Z" }, + { url = "https://files.pythonhosted.org/packages/60/07/68e6ccdb4b05115ffe61d31afc94adef1833d3a72f76c9632d4d90d67954/rpds_py-0.28.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e5bbc701eff140ba0e872691d573b3d5d30059ea26e5785acba9132d10c8c31d", size = 381800, upload-time = "2025-10-22T22:22:57.808Z" }, + { url = "https://files.pythonhosted.org/packages/73/bf/6d6d15df80781d7f9f368e7c1a00caf764436518c4877fb28b029c4624af/rpds_py-0.28.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a5690671cd672a45aa8616d7374fdf334a1b9c04a0cac3c854b1136e92374fe", size = 518827, upload-time = "2025-10-22T22:22:59.826Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d3/2decbb2976cc452cbf12a2b0aaac5f1b9dc5dd9d1f7e2509a3ee00421249/rpds_py-0.28.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9f1d92ecea4fa12f978a367c32a5375a1982834649cdb96539dcdc12e609ab1a", size = 399471, upload-time = "2025-10-22T22:23:01.968Z" }, + { url = "https://files.pythonhosted.org/packages/b1/2c/f30892f9e54bd02e5faca3f6a26d6933c51055e67d54818af90abed9748e/rpds_py-0.28.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d252db6b1a78d0a3928b6190156042d54c93660ce4d98290d7b16b5296fb7cc", size = 377578, upload-time = "2025-10-22T22:23:03.52Z" }, + { url = "https://files.pythonhosted.org/packages/f0/5d/3bce97e5534157318f29ac06bf2d279dae2674ec12f7cb9c12739cee64d8/rpds_py-0.28.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:d61b355c3275acb825f8777d6c4505f42b5007e357af500939d4a35b19177259", size = 390482, upload-time = "2025-10-22T22:23:05.391Z" }, + { url = "https://files.pythonhosted.org/packages/e3/f0/886bd515ed457b5bd93b166175edb80a0b21a210c10e993392127f1e3931/rpds_py-0.28.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:acbe5e8b1026c0c580d0321c8aae4b0a1e1676861d48d6e8c6586625055b606a", size = 402447, upload-time = "2025-10-22T22:23:06.93Z" }, + { url = "https://files.pythonhosted.org/packages/42/b5/71e8777ac55e6af1f4f1c05b47542a1eaa6c33c1cf0d300dca6a1c6e159a/rpds_py-0.28.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8aa23b6f0fc59b85b4c7d89ba2965af274346f738e8d9fc2455763602e62fd5f", size = 552385, upload-time = "2025-10-22T22:23:08.557Z" }, + { url = "https://files.pythonhosted.org/packages/5d/cb/6ca2d70cbda5a8e36605e7788c4aa3bea7c17d71d213465a5a675079b98d/rpds_py-0.28.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7b14b0c680286958817c22d76fcbca4800ddacef6f678f3a7c79a1fe7067fe37", size = 575642, upload-time = "2025-10-22T22:23:10.348Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d4/407ad9960ca7856d7b25c96dcbe019270b5ffdd83a561787bc682c797086/rpds_py-0.28.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:bcf1d210dfee61a6c86551d67ee1031899c0fdbae88b2d44a569995d43797712", size = 544507, upload-time = "2025-10-22T22:23:12.434Z" }, + { url = "https://files.pythonhosted.org/packages/51/31/2f46fe0efcac23fbf5797c6b6b7e1c76f7d60773e525cb65fcbc582ee0f2/rpds_py-0.28.0-cp313-cp313t-win32.whl", hash = "sha256:3aa4dc0fdab4a7029ac63959a3ccf4ed605fee048ba67ce89ca3168da34a1342", size = 205376, upload-time = "2025-10-22T22:23:13.979Z" }, + { url = "https://files.pythonhosted.org/packages/92/e4/15947bda33cbedfc134490a41841ab8870a72a867a03d4969d886f6594a2/rpds_py-0.28.0-cp313-cp313t-win_amd64.whl", hash = "sha256:7b7d9d83c942855e4fdcfa75d4f96f6b9e272d42fffcb72cd4bb2577db2e2907", size = 215907, upload-time = "2025-10-22T22:23:15.5Z" }, + { url = "https://files.pythonhosted.org/packages/08/47/ffe8cd7a6a02833b10623bf765fbb57ce977e9a4318ca0e8cf97e9c3d2b3/rpds_py-0.28.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:dcdcb890b3ada98a03f9f2bb108489cdc7580176cb73b4f2d789e9a1dac1d472", size = 353830, upload-time = "2025-10-22T22:23:17.03Z" }, + { url = "https://files.pythonhosted.org/packages/f9/9f/890f36cbd83a58491d0d91ae0db1702639edb33fb48eeb356f80ecc6b000/rpds_py-0.28.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:f274f56a926ba2dc02976ca5b11c32855cbd5925534e57cfe1fda64e04d1add2", size = 341819, upload-time = "2025-10-22T22:23:18.57Z" }, + { url = "https://files.pythonhosted.org/packages/09/e3/921eb109f682aa24fb76207698fbbcf9418738f35a40c21652c29053f23d/rpds_py-0.28.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4fe0438ac4a29a520ea94c8c7f1754cdd8feb1bc490dfda1bfd990072363d527", size = 373127, upload-time = "2025-10-22T22:23:20.216Z" }, + { url = "https://files.pythonhosted.org/packages/23/13/bce4384d9f8f4989f1a9599c71b7a2d877462e5fd7175e1f69b398f729f4/rpds_py-0.28.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8a358a32dd3ae50e933347889b6af9a1bdf207ba5d1a3f34e1a38cd3540e6733", size = 382767, upload-time = "2025-10-22T22:23:21.787Z" }, + { url = "https://files.pythonhosted.org/packages/23/e1/579512b2d89a77c64ccef5a0bc46a6ef7f72ae0cf03d4b26dcd52e57ee0a/rpds_py-0.28.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e80848a71c78aa328fefaba9c244d588a342c8e03bda518447b624ea64d1ff56", size = 517585, upload-time = "2025-10-22T22:23:23.699Z" }, + { url = "https://files.pythonhosted.org/packages/62/3c/ca704b8d324a2591b0b0adcfcaadf9c862375b11f2f667ac03c61b4fd0a6/rpds_py-0.28.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f586db2e209d54fe177e58e0bc4946bea5fb0102f150b1b2f13de03e1f0976f8", size = 399828, upload-time = "2025-10-22T22:23:25.713Z" }, + { url = "https://files.pythonhosted.org/packages/da/37/e84283b9e897e3adc46b4c88bb3f6ec92a43bd4d2f7ef5b13459963b2e9c/rpds_py-0.28.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ae8ee156d6b586e4292491e885d41483136ab994e719a13458055bec14cf370", size = 375509, upload-time = "2025-10-22T22:23:27.32Z" }, + { url = "https://files.pythonhosted.org/packages/1a/c2/a980beab869d86258bf76ec42dec778ba98151f253a952b02fe36d72b29c/rpds_py-0.28.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:a805e9b3973f7e27f7cab63a6b4f61d90f2e5557cff73b6e97cd5b8540276d3d", size = 392014, upload-time = "2025-10-22T22:23:29.332Z" }, + { url = "https://files.pythonhosted.org/packages/da/b5/b1d3c5f9d3fa5aeef74265f9c64de3c34a0d6d5cd3c81c8b17d5c8f10ed4/rpds_py-0.28.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5d3fd16b6dc89c73a4da0b4ac8b12a7ecc75b2864b95c9e5afed8003cb50a728", size = 402410, upload-time = "2025-10-22T22:23:31.14Z" }, + { url = "https://files.pythonhosted.org/packages/74/ae/cab05ff08dfcc052afc73dcb38cbc765ffc86f94e966f3924cd17492293c/rpds_py-0.28.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:6796079e5d24fdaba6d49bda28e2c47347e89834678f2bc2c1b4fc1489c0fb01", size = 553593, upload-time = "2025-10-22T22:23:32.834Z" }, + { url = "https://files.pythonhosted.org/packages/70/80/50d5706ea2a9bfc9e9c5f401d91879e7c790c619969369800cde202da214/rpds_py-0.28.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:76500820c2af232435cbe215e3324c75b950a027134e044423f59f5b9a1ba515", size = 576925, upload-time = "2025-10-22T22:23:34.47Z" }, + { url = "https://files.pythonhosted.org/packages/ab/12/85a57d7a5855a3b188d024b099fd09c90db55d32a03626d0ed16352413ff/rpds_py-0.28.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:bbdc5640900a7dbf9dd707fe6388972f5bbd883633eb68b76591044cfe346f7e", size = 542444, upload-time = "2025-10-22T22:23:36.093Z" }, + { url = "https://files.pythonhosted.org/packages/6c/65/10643fb50179509150eb94d558e8837c57ca8b9adc04bd07b98e57b48f8c/rpds_py-0.28.0-cp314-cp314-win32.whl", hash = "sha256:adc8aa88486857d2b35d75f0640b949759f79dc105f50aa2c27816b2e0dd749f", size = 207968, upload-time = "2025-10-22T22:23:37.638Z" }, + { url = "https://files.pythonhosted.org/packages/b4/84/0c11fe4d9aaea784ff4652499e365963222481ac647bcd0251c88af646eb/rpds_py-0.28.0-cp314-cp314-win_amd64.whl", hash = "sha256:66e6fa8e075b58946e76a78e69e1a124a21d9a48a5b4766d15ba5b06869d1fa1", size = 218876, upload-time = "2025-10-22T22:23:39.179Z" }, + { url = "https://files.pythonhosted.org/packages/0f/e0/3ab3b86ded7bb18478392dc3e835f7b754cd446f62f3fc96f4fe2aca78f6/rpds_py-0.28.0-cp314-cp314-win_arm64.whl", hash = "sha256:a6fe887c2c5c59413353b7c0caff25d0e566623501ccfff88957fa438a69377d", size = 212506, upload-time = "2025-10-22T22:23:40.755Z" }, + { url = "https://files.pythonhosted.org/packages/51/ec/d5681bb425226c3501eab50fc30e9d275de20c131869322c8a1729c7b61c/rpds_py-0.28.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:7a69df082db13c7070f7b8b1f155fa9e687f1d6aefb7b0e3f7231653b79a067b", size = 355433, upload-time = "2025-10-22T22:23:42.259Z" }, + { url = "https://files.pythonhosted.org/packages/be/ec/568c5e689e1cfb1ea8b875cffea3649260955f677fdd7ddc6176902d04cd/rpds_py-0.28.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b1cde22f2c30ebb049a9e74c5374994157b9b70a16147d332f89c99c5960737a", size = 342601, upload-time = "2025-10-22T22:23:44.372Z" }, + { url = "https://files.pythonhosted.org/packages/32/fe/51ada84d1d2a1d9d8f2c902cfddd0133b4a5eb543196ab5161d1c07ed2ad/rpds_py-0.28.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5338742f6ba7a51012ea470bd4dc600a8c713c0c72adaa0977a1b1f4327d6592", size = 372039, upload-time = "2025-10-22T22:23:46.025Z" }, + { url = "https://files.pythonhosted.org/packages/07/c1/60144a2f2620abade1a78e0d91b298ac2d9b91bc08864493fa00451ef06e/rpds_py-0.28.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e1460ebde1bcf6d496d80b191d854adedcc619f84ff17dc1c6d550f58c9efbba", size = 382407, upload-time = "2025-10-22T22:23:48.098Z" }, + { url = "https://files.pythonhosted.org/packages/45/ed/091a7bbdcf4038a60a461df50bc4c82a7ed6d5d5e27649aab61771c17585/rpds_py-0.28.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e3eb248f2feba84c692579257a043a7699e28a77d86c77b032c1d9fbb3f0219c", size = 518172, upload-time = "2025-10-22T22:23:50.16Z" }, + { url = "https://files.pythonhosted.org/packages/54/dd/02cc90c2fd9c2ef8016fd7813bfacd1c3a1325633ec8f244c47b449fc868/rpds_py-0.28.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd3bbba5def70b16cd1c1d7255666aad3b290fbf8d0fe7f9f91abafb73611a91", size = 399020, upload-time = "2025-10-22T22:23:51.81Z" }, + { url = "https://files.pythonhosted.org/packages/ab/81/5d98cc0329bbb911ccecd0b9e19fbf7f3a5de8094b4cda5e71013b2dd77e/rpds_py-0.28.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3114f4db69ac5a1f32e7e4d1cbbe7c8f9cf8217f78e6e002cedf2d54c2a548ed", size = 377451, upload-time = "2025-10-22T22:23:53.711Z" }, + { url = "https://files.pythonhosted.org/packages/b4/07/4d5bcd49e3dfed2d38e2dcb49ab6615f2ceb9f89f5a372c46dbdebb4e028/rpds_py-0.28.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:4b0cb8a906b1a0196b863d460c0222fb8ad0f34041568da5620f9799b83ccf0b", size = 390355, upload-time = "2025-10-22T22:23:55.299Z" }, + { url = "https://files.pythonhosted.org/packages/3f/79/9f14ba9010fee74e4f40bf578735cfcbb91d2e642ffd1abe429bb0b96364/rpds_py-0.28.0-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cf681ac76a60b667106141e11a92a3330890257e6f559ca995fbb5265160b56e", size = 403146, upload-time = "2025-10-22T22:23:56.929Z" }, + { url = "https://files.pythonhosted.org/packages/39/4c/f08283a82ac141331a83a40652830edd3a4a92c34e07e2bbe00baaea2f5f/rpds_py-0.28.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1e8ee6413cfc677ce8898d9cde18cc3a60fc2ba756b0dec5b71eb6eb21c49fa1", size = 552656, upload-time = "2025-10-22T22:23:58.62Z" }, + { url = "https://files.pythonhosted.org/packages/61/47/d922fc0666f0dd8e40c33990d055f4cc6ecff6f502c2d01569dbed830f9b/rpds_py-0.28.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:b3072b16904d0b5572a15eb9d31c1954e0d3227a585fc1351aa9878729099d6c", size = 576782, upload-time = "2025-10-22T22:24:00.312Z" }, + { url = "https://files.pythonhosted.org/packages/d3/0c/5bafdd8ccf6aa9d3bfc630cfece457ff5b581af24f46a9f3590f790e3df2/rpds_py-0.28.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b670c30fd87a6aec281c3c9896d3bae4b205fd75d79d06dc87c2503717e46092", size = 544671, upload-time = "2025-10-22T22:24:02.297Z" }, + { url = "https://files.pythonhosted.org/packages/2c/37/dcc5d8397caa924988693519069d0beea077a866128719351a4ad95e82fc/rpds_py-0.28.0-cp314-cp314t-win32.whl", hash = "sha256:8014045a15b4d2b3476f0a287fcc93d4f823472d7d1308d47884ecac9e612be3", size = 205749, upload-time = "2025-10-22T22:24:03.848Z" }, + { url = "https://files.pythonhosted.org/packages/d7/69/64d43b21a10d72b45939a28961216baeb721cc2a430f5f7c3bfa21659a53/rpds_py-0.28.0-cp314-cp314t-win_amd64.whl", hash = "sha256:7a4e59c90d9c27c561eb3160323634a9ff50b04e4f7820600a2beb0ac90db578", size = 216233, upload-time = "2025-10-22T22:24:05.471Z" }, + { url = "https://files.pythonhosted.org/packages/ae/bc/b43f2ea505f28119bd551ae75f70be0c803d2dbcd37c1b3734909e40620b/rpds_py-0.28.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f5e7101145427087e493b9c9b959da68d357c28c562792300dd21a095118ed16", size = 363913, upload-time = "2025-10-22T22:24:07.129Z" }, + { url = "https://files.pythonhosted.org/packages/28/f2/db318195d324c89a2c57dc5195058cbadd71b20d220685c5bd1da79ee7fe/rpds_py-0.28.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:31eb671150b9c62409a888850aaa8e6533635704fe2b78335f9aaf7ff81eec4d", size = 350452, upload-time = "2025-10-22T22:24:08.754Z" }, + { url = "https://files.pythonhosted.org/packages/ae/f2/1391c819b8573a4898cedd6b6c5ec5bc370ce59e5d6bdcebe3c9c1db4588/rpds_py-0.28.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48b55c1f64482f7d8bd39942f376bfdf2f6aec637ee8c805b5041e14eeb771db", size = 380957, upload-time = "2025-10-22T22:24:10.826Z" }, + { url = "https://files.pythonhosted.org/packages/5a/5c/e5de68ee7eb7248fce93269833d1b329a196d736aefb1a7481d1e99d1222/rpds_py-0.28.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:24743a7b372e9a76171f6b69c01aedf927e8ac3e16c474d9fe20d552a8cb45c7", size = 391919, upload-time = "2025-10-22T22:24:12.559Z" }, + { url = "https://files.pythonhosted.org/packages/fb/4f/2376336112cbfeb122fd435d608ad8d5041b3aed176f85a3cb32c262eb80/rpds_py-0.28.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:389c29045ee8bbb1627ea190b4976a310a295559eaf9f1464a1a6f2bf84dde78", size = 528541, upload-time = "2025-10-22T22:24:14.197Z" }, + { url = "https://files.pythonhosted.org/packages/68/53/5ae232e795853dd20da7225c5dd13a09c0a905b1a655e92bdf8d78a99fd9/rpds_py-0.28.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23690b5827e643150cf7b49569679ec13fe9a610a15949ed48b85eb7f98f34ec", size = 405629, upload-time = "2025-10-22T22:24:16.001Z" }, + { url = "https://files.pythonhosted.org/packages/b9/2d/351a3b852b683ca9b6b8b38ed9efb2347596973849ba6c3a0e99877c10aa/rpds_py-0.28.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f0c9266c26580e7243ad0d72fc3e01d6b33866cfab5084a6da7576bcf1c4f72", size = 384123, upload-time = "2025-10-22T22:24:17.585Z" }, + { url = "https://files.pythonhosted.org/packages/e0/15/870804daa00202728cc91cb8e2385fa9f1f4eb49857c49cfce89e304eae6/rpds_py-0.28.0-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:4c6c4db5d73d179746951486df97fd25e92396be07fc29ee8ff9a8f5afbdfb27", size = 400923, upload-time = "2025-10-22T22:24:19.512Z" }, + { url = "https://files.pythonhosted.org/packages/53/25/3706b83c125fa2a0bccceac951de3f76631f6bd0ee4d02a0ed780712ef1b/rpds_py-0.28.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a3b695a8fa799dd2cfdb4804b37096c5f6dba1ac7f48a7fbf6d0485bcd060316", size = 413767, upload-time = "2025-10-22T22:24:21.316Z" }, + { url = "https://files.pythonhosted.org/packages/ef/f9/ce43dbe62767432273ed2584cef71fef8411bddfb64125d4c19128015018/rpds_py-0.28.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:6aa1bfce3f83baf00d9c5fcdbba93a3ab79958b4c7d7d1f55e7fe68c20e63912", size = 561530, upload-time = "2025-10-22T22:24:22.958Z" }, + { url = "https://files.pythonhosted.org/packages/46/c9/ffe77999ed8f81e30713dd38fd9ecaa161f28ec48bb80fa1cd9118399c27/rpds_py-0.28.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:7b0f9dceb221792b3ee6acb5438eb1f02b0cb2c247796a72b016dcc92c6de829", size = 585453, upload-time = "2025-10-22T22:24:24.779Z" }, + { url = "https://files.pythonhosted.org/packages/ed/d2/4a73b18821fd4669762c855fd1f4e80ceb66fb72d71162d14da58444a763/rpds_py-0.28.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:5d0145edba8abd3db0ab22b5300c99dc152f5c9021fab861be0f0544dc3cbc5f", size = 552199, upload-time = "2025-10-22T22:24:26.54Z" }, +] + +[[package]] +name = "ruff" +version = "0.14.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/fa/fbb67a5780ae0f704876cb8ac92d6d76da41da4dc72b7ed3565ab18f2f52/ruff-0.14.5.tar.gz", hash = "sha256:8d3b48d7d8aad423d3137af7ab6c8b1e38e4de104800f0d596990f6ada1a9fc1", size = 5615944, upload-time = "2025-11-13T19:58:51.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/31/c07e9c535248d10836a94e4f4e8c5a31a1beed6f169b31405b227872d4f4/ruff-0.14.5-py3-none-linux_armv6l.whl", hash = "sha256:f3b8248123b586de44a8018bcc9fefe31d23dda57a34e6f0e1e53bd51fd63594", size = 13171630, upload-time = "2025-11-13T19:57:54.894Z" }, + { url = "https://files.pythonhosted.org/packages/8e/5c/283c62516dca697cd604c2796d1487396b7a436b2f0ecc3fd412aca470e0/ruff-0.14.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:f7a75236570318c7a30edd7f5491945f0169de738d945ca8784500b517163a72", size = 13413925, upload-time = "2025-11-13T19:57:59.181Z" }, + { url = "https://files.pythonhosted.org/packages/b6/f3/aa319f4afc22cb6fcba2b9cdfc0f03bbf747e59ab7a8c5e90173857a1361/ruff-0.14.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:6d146132d1ee115f8802356a2dc9a634dbf58184c51bff21f313e8cd1c74899a", size = 12574040, upload-time = "2025-11-13T19:58:02.056Z" }, + { url = "https://files.pythonhosted.org/packages/f9/7f/cb5845fcc7c7e88ed57f58670189fc2ff517fe2134c3821e77e29fd3b0c8/ruff-0.14.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2380596653dcd20b057794d55681571a257a42327da8894b93bbd6111aa801f", size = 13009755, upload-time = "2025-11-13T19:58:05.172Z" }, + { url = "https://files.pythonhosted.org/packages/21/d2/bcbedbb6bcb9253085981730687ddc0cc7b2e18e8dc13cf4453de905d7a0/ruff-0.14.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2d1fa985a42b1f075a098fa1ab9d472b712bdb17ad87a8ec86e45e7fa6273e68", size = 12937641, upload-time = "2025-11-13T19:58:08.345Z" }, + { url = "https://files.pythonhosted.org/packages/a4/58/e25de28a572bdd60ffc6bb71fc7fd25a94ec6a076942e372437649cbb02a/ruff-0.14.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88f0770d42b7fa02bbefddde15d235ca3aa24e2f0137388cc15b2dcbb1f7c7a7", size = 13610854, upload-time = "2025-11-13T19:58:11.419Z" }, + { url = "https://files.pythonhosted.org/packages/7d/24/43bb3fd23ecee9861970978ea1a7a63e12a204d319248a7e8af539984280/ruff-0.14.5-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:3676cb02b9061fee7294661071c4709fa21419ea9176087cb77e64410926eb78", size = 15061088, upload-time = "2025-11-13T19:58:14.551Z" }, + { url = "https://files.pythonhosted.org/packages/23/44/a022f288d61c2f8c8645b24c364b719aee293ffc7d633a2ca4d116b9c716/ruff-0.14.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b595bedf6bc9cab647c4a173a61acf4f1ac5f2b545203ba82f30fcb10b0318fb", size = 14734717, upload-time = "2025-11-13T19:58:17.518Z" }, + { url = "https://files.pythonhosted.org/packages/58/81/5c6ba44de7e44c91f68073e0658109d8373b0590940efe5bd7753a2585a3/ruff-0.14.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f55382725ad0bdb2e8ee2babcbbfb16f124f5a59496a2f6a46f1d9d99d93e6e2", size = 14028812, upload-time = "2025-11-13T19:58:20.533Z" }, + { url = "https://files.pythonhosted.org/packages/ad/ef/41a8b60f8462cb320f68615b00299ebb12660097c952c600c762078420f8/ruff-0.14.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7497d19dce23976bdaca24345ae131a1d38dcfe1b0850ad8e9e6e4fa321a6e19", size = 13825656, upload-time = "2025-11-13T19:58:23.345Z" }, + { url = "https://files.pythonhosted.org/packages/7c/00/207e5de737fdb59b39eb1fac806904fe05681981b46d6a6db9468501062e/ruff-0.14.5-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:410e781f1122d6be4f446981dd479470af86537fb0b8857f27a6e872f65a38e4", size = 13959922, upload-time = "2025-11-13T19:58:26.537Z" }, + { url = "https://files.pythonhosted.org/packages/bc/7e/fa1f5c2776db4be405040293618846a2dece5c70b050874c2d1f10f24776/ruff-0.14.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c01be527ef4c91a6d55e53b337bfe2c0f82af024cc1a33c44792d6844e2331e1", size = 12932501, upload-time = "2025-11-13T19:58:29.822Z" }, + { url = "https://files.pythonhosted.org/packages/67/d8/d86bf784d693a764b59479a6bbdc9515ae42c340a5dc5ab1dabef847bfaa/ruff-0.14.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f66e9bb762e68d66e48550b59c74314168ebb46199886c5c5aa0b0fbcc81b151", size = 12927319, upload-time = "2025-11-13T19:58:32.923Z" }, + { url = "https://files.pythonhosted.org/packages/ac/de/ee0b304d450ae007ce0cb3e455fe24fbcaaedae4ebaad6c23831c6663651/ruff-0.14.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d93be8f1fa01022337f1f8f3bcaa7ffee2d0b03f00922c45c2207954f351f465", size = 13206209, upload-time = "2025-11-13T19:58:35.952Z" }, + { url = "https://files.pythonhosted.org/packages/33/aa/193ca7e3a92d74f17d9d5771a765965d2cf42c86e6f0fd95b13969115723/ruff-0.14.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:c135d4b681f7401fe0e7312017e41aba9b3160861105726b76cfa14bc25aa367", size = 13953709, upload-time = "2025-11-13T19:58:39.002Z" }, + { url = "https://files.pythonhosted.org/packages/cc/f1/7119e42aa1d3bf036ffc9478885c2e248812b7de9abea4eae89163d2929d/ruff-0.14.5-py3-none-win32.whl", hash = "sha256:c83642e6fccfb6dea8b785eb9f456800dcd6a63f362238af5fc0c83d027dd08b", size = 12925808, upload-time = "2025-11-13T19:58:42.779Z" }, + { url = "https://files.pythonhosted.org/packages/3b/9d/7c0a255d21e0912114784e4a96bf62af0618e2190cae468cd82b13625ad2/ruff-0.14.5-py3-none-win_amd64.whl", hash = "sha256:9d55d7af7166f143c94eae1db3312f9ea8f95a4defef1979ed516dbb38c27621", size = 14331546, upload-time = "2025-11-13T19:58:45.691Z" }, + { url = "https://files.pythonhosted.org/packages/e5/80/69756670caedcf3b9be597a6e12276a6cf6197076eb62aad0c608f8efce0/ruff-0.14.5-py3-none-win_arm64.whl", hash = "sha256:4b700459d4649e2594b31f20a9de33bc7c19976d4746d8d0798ad959621d64a4", size = 13433331, upload-time = "2025-11-13T19:58:48.434Z" }, +] + +[[package]] +name = "secretstorage" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "jeepney" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/31/9f/11ef35cf1027c1339552ea7bfe6aaa74a8516d8b5caf6e7d338daf54fd80/secretstorage-3.4.0.tar.gz", hash = "sha256:c46e216d6815aff8a8a18706a2fbfd8d53fcbb0dce99301881687a1b0289ef7c", size = 19748, upload-time = "2025-09-09T16:42:13.859Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/ff/2e2eed29e02c14a5cb6c57f09b2d5b40e65d6cc71f45b52e0be295ccbc2f/secretstorage-3.4.0-py3-none-any.whl", hash = "sha256:0e3b6265c2c63509fb7415717607e4b2c9ab767b7f344a57473b779ca13bd02e", size = 15272, upload-time = "2025-09-09T16:42:12.744Z" }, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, +] + +[[package]] +name = "sse-starlette" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/db/3c/fa6517610dc641262b77cc7bf994ecd17465812c1b0585fe33e11be758ab/sse_starlette-3.0.3.tar.gz", hash = "sha256:88cfb08747e16200ea990c8ca876b03910a23b547ab3bd764c0d8eb81019b971", size = 21943, upload-time = "2025-10-30T18:44:20.117Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/23/a0/984525d19ca5c8a6c33911a0c164b11490dd0f90ff7fd689f704f84e9a11/sse_starlette-3.0.3-py3-none-any.whl", hash = "sha256:af5bf5a6f3933df1d9c7f8539633dc8444ca6a97ab2e2a7cd3b6e431ac03a431", size = 11765, upload-time = "2025-10-30T18:44:18.834Z" }, +] + +[[package]] +name = "starlette" +version = "0.50.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ba/b8/73a0e6a6e079a9d9cfa64113d771e421640b6f679a52eeb9b32f72d871a1/starlette-0.50.0.tar.gz", hash = "sha256:a2a17b22203254bcbc2e1f926d2d55f3f9497f769416b3190768befe598fa3ca", size = 2646985, upload-time = "2025-11-01T15:25:27.516Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/52/1064f510b141bd54025f9b55105e26d1fa970b9be67ad766380a3c9b74b0/starlette-0.50.0-py3-none-any.whl", hash = "sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca", size = 74033, upload-time = "2025-11-01T15:25:25.461Z" }, +] + +[[package]] +name = "tomli" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/52/ed/3f73f72945444548f33eba9a87fc7a6e969915e7b1acc8260b30e1f76a2f/tomli-2.3.0.tar.gz", hash = "sha256:64be704a875d2a59753d80ee8a533c3fe183e3f06807ff7dc2232938ccb01549", size = 17392, upload-time = "2025-10-08T22:01:47.119Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/2e/299f62b401438d5fe1624119c723f5d877acc86a4c2492da405626665f12/tomli-2.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:88bd15eb972f3664f5ed4b57c1634a97153b4bac4479dcb6a495f41921eb7f45", size = 153236, upload-time = "2025-10-08T22:01:00.137Z" }, + { url = "https://files.pythonhosted.org/packages/86/7f/d8fffe6a7aefdb61bced88fcb5e280cfd71e08939da5894161bd71bea022/tomli-2.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:883b1c0d6398a6a9d29b508c331fa56adbcdff647f6ace4dfca0f50e90dfd0ba", size = 148084, upload-time = "2025-10-08T22:01:01.63Z" }, + { url = "https://files.pythonhosted.org/packages/47/5c/24935fb6a2ee63e86d80e4d3b58b222dafaf438c416752c8b58537c8b89a/tomli-2.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d1381caf13ab9f300e30dd8feadb3de072aeb86f1d34a8569453ff32a7dea4bf", size = 234832, upload-time = "2025-10-08T22:01:02.543Z" }, + { url = "https://files.pythonhosted.org/packages/89/da/75dfd804fc11e6612846758a23f13271b76d577e299592b4371a4ca4cd09/tomli-2.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0e285d2649b78c0d9027570d4da3425bdb49830a6156121360b3f8511ea3441", size = 242052, upload-time = "2025-10-08T22:01:03.836Z" }, + { url = "https://files.pythonhosted.org/packages/70/8c/f48ac899f7b3ca7eb13af73bacbc93aec37f9c954df3c08ad96991c8c373/tomli-2.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a154a9ae14bfcf5d8917a59b51ffd5a3ac1fd149b71b47a3a104ca4edcfa845", size = 239555, upload-time = "2025-10-08T22:01:04.834Z" }, + { url = "https://files.pythonhosted.org/packages/ba/28/72f8afd73f1d0e7829bfc093f4cb98ce0a40ffc0cc997009ee1ed94ba705/tomli-2.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:74bf8464ff93e413514fefd2be591c3b0b23231a77f901db1eb30d6f712fc42c", size = 245128, upload-time = "2025-10-08T22:01:05.84Z" }, + { url = "https://files.pythonhosted.org/packages/b6/eb/a7679c8ac85208706d27436e8d421dfa39d4c914dcf5fa8083a9305f58d9/tomli-2.3.0-cp311-cp311-win32.whl", hash = "sha256:00b5f5d95bbfc7d12f91ad8c593a1659b6387b43f054104cda404be6bda62456", size = 96445, upload-time = "2025-10-08T22:01:06.896Z" }, + { url = "https://files.pythonhosted.org/packages/0a/fe/3d3420c4cb1ad9cb462fb52967080575f15898da97e21cb6f1361d505383/tomli-2.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:4dc4ce8483a5d429ab602f111a93a6ab1ed425eae3122032db7e9acf449451be", size = 107165, upload-time = "2025-10-08T22:01:08.107Z" }, + { url = "https://files.pythonhosted.org/packages/ff/b7/40f36368fcabc518bb11c8f06379a0fd631985046c038aca08c6d6a43c6e/tomli-2.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d7d86942e56ded512a594786a5ba0a5e521d02529b3826e7761a05138341a2ac", size = 154891, upload-time = "2025-10-08T22:01:09.082Z" }, + { url = "https://files.pythonhosted.org/packages/f9/3f/d9dd692199e3b3aab2e4e4dd948abd0f790d9ded8cd10cbaae276a898434/tomli-2.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:73ee0b47d4dad1c5e996e3cd33b8a76a50167ae5f96a2607cbe8cc773506ab22", size = 148796, upload-time = "2025-10-08T22:01:10.266Z" }, + { url = "https://files.pythonhosted.org/packages/60/83/59bff4996c2cf9f9387a0f5a3394629c7efa5ef16142076a23a90f1955fa/tomli-2.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:792262b94d5d0a466afb5bc63c7daa9d75520110971ee269152083270998316f", size = 242121, upload-time = "2025-10-08T22:01:11.332Z" }, + { url = "https://files.pythonhosted.org/packages/45/e5/7c5119ff39de8693d6baab6c0b6dcb556d192c165596e9fc231ea1052041/tomli-2.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4f195fe57ecceac95a66a75ac24d9d5fbc98ef0962e09b2eddec5d39375aae52", size = 250070, upload-time = "2025-10-08T22:01:12.498Z" }, + { url = "https://files.pythonhosted.org/packages/45/12/ad5126d3a278f27e6701abde51d342aa78d06e27ce2bb596a01f7709a5a2/tomli-2.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e31d432427dcbf4d86958c184b9bfd1e96b5b71f8eb17e6d02531f434fd335b8", size = 245859, upload-time = "2025-10-08T22:01:13.551Z" }, + { url = "https://files.pythonhosted.org/packages/fb/a1/4d6865da6a71c603cfe6ad0e6556c73c76548557a8d658f9e3b142df245f/tomli-2.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b0882799624980785240ab732537fcfc372601015c00f7fc367c55308c186f6", size = 250296, upload-time = "2025-10-08T22:01:14.614Z" }, + { url = "https://files.pythonhosted.org/packages/a0/b7/a7a7042715d55c9ba6e8b196d65d2cb662578b4d8cd17d882d45322b0d78/tomli-2.3.0-cp312-cp312-win32.whl", hash = "sha256:ff72b71b5d10d22ecb084d345fc26f42b5143c5533db5e2eaba7d2d335358876", size = 97124, upload-time = "2025-10-08T22:01:15.629Z" }, + { url = "https://files.pythonhosted.org/packages/06/1e/f22f100db15a68b520664eb3328fb0ae4e90530887928558112c8d1f4515/tomli-2.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:1cb4ed918939151a03f33d4242ccd0aa5f11b3547d0cf30f7c74a408a5b99878", size = 107698, upload-time = "2025-10-08T22:01:16.51Z" }, + { url = "https://files.pythonhosted.org/packages/89/48/06ee6eabe4fdd9ecd48bf488f4ac783844fd777f547b8d1b61c11939974e/tomli-2.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5192f562738228945d7b13d4930baffda67b69425a7f0da96d360b0a3888136b", size = 154819, upload-time = "2025-10-08T22:01:17.964Z" }, + { url = "https://files.pythonhosted.org/packages/f1/01/88793757d54d8937015c75dcdfb673c65471945f6be98e6a0410fba167ed/tomli-2.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:be71c93a63d738597996be9528f4abe628d1adf5e6eb11607bc8fe1a510b5dae", size = 148766, upload-time = "2025-10-08T22:01:18.959Z" }, + { url = "https://files.pythonhosted.org/packages/42/17/5e2c956f0144b812e7e107f94f1cc54af734eb17b5191c0bbfb72de5e93e/tomli-2.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4665508bcbac83a31ff8ab08f424b665200c0e1e645d2bd9ab3d3e557b6185b", size = 240771, upload-time = "2025-10-08T22:01:20.106Z" }, + { url = "https://files.pythonhosted.org/packages/d5/f4/0fbd014909748706c01d16824eadb0307115f9562a15cbb012cd9b3512c5/tomli-2.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4021923f97266babc6ccab9f5068642a0095faa0a51a246a6a02fccbb3514eaf", size = 248586, upload-time = "2025-10-08T22:01:21.164Z" }, + { url = "https://files.pythonhosted.org/packages/30/77/fed85e114bde5e81ecf9bc5da0cc69f2914b38f4708c80ae67d0c10180c5/tomli-2.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4ea38c40145a357d513bffad0ed869f13c1773716cf71ccaa83b0fa0cc4e42f", size = 244792, upload-time = "2025-10-08T22:01:22.417Z" }, + { url = "https://files.pythonhosted.org/packages/55/92/afed3d497f7c186dc71e6ee6d4fcb0acfa5f7d0a1a2878f8beae379ae0cc/tomli-2.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ad805ea85eda330dbad64c7ea7a4556259665bdf9d2672f5dccc740eb9d3ca05", size = 248909, upload-time = "2025-10-08T22:01:23.859Z" }, + { url = "https://files.pythonhosted.org/packages/f8/84/ef50c51b5a9472e7265ce1ffc7f24cd4023d289e109f669bdb1553f6a7c2/tomli-2.3.0-cp313-cp313-win32.whl", hash = "sha256:97d5eec30149fd3294270e889b4234023f2c69747e555a27bd708828353ab606", size = 96946, upload-time = "2025-10-08T22:01:24.893Z" }, + { url = "https://files.pythonhosted.org/packages/b2/b7/718cd1da0884f281f95ccfa3a6cc572d30053cba64603f79d431d3c9b61b/tomli-2.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:0c95ca56fbe89e065c6ead5b593ee64b84a26fca063b5d71a1122bf26e533999", size = 107705, upload-time = "2025-10-08T22:01:26.153Z" }, + { url = "https://files.pythonhosted.org/packages/19/94/aeafa14a52e16163008060506fcb6aa1949d13548d13752171a755c65611/tomli-2.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cebc6fe843e0733ee827a282aca4999b596241195f43b4cc371d64fc6639da9e", size = 154244, upload-time = "2025-10-08T22:01:27.06Z" }, + { url = "https://files.pythonhosted.org/packages/db/e4/1e58409aa78eefa47ccd19779fc6f36787edbe7d4cd330eeeedb33a4515b/tomli-2.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4c2ef0244c75aba9355561272009d934953817c49f47d768070c3c94355c2aa3", size = 148637, upload-time = "2025-10-08T22:01:28.059Z" }, + { url = "https://files.pythonhosted.org/packages/26/b6/d1eccb62f665e44359226811064596dd6a366ea1f985839c566cd61525ae/tomli-2.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c22a8bf253bacc0cf11f35ad9808b6cb75ada2631c2d97c971122583b129afbc", size = 241925, upload-time = "2025-10-08T22:01:29.066Z" }, + { url = "https://files.pythonhosted.org/packages/70/91/7cdab9a03e6d3d2bb11beae108da5bdc1c34bdeb06e21163482544ddcc90/tomli-2.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0eea8cc5c5e9f89c9b90c4896a8deefc74f518db5927d0e0e8d4a80953d774d0", size = 249045, upload-time = "2025-10-08T22:01:31.98Z" }, + { url = "https://files.pythonhosted.org/packages/15/1b/8c26874ed1f6e4f1fcfeb868db8a794cbe9f227299402db58cfcc858766c/tomli-2.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b74a0e59ec5d15127acdabd75ea17726ac4c5178ae51b85bfe39c4f8a278e879", size = 245835, upload-time = "2025-10-08T22:01:32.989Z" }, + { url = "https://files.pythonhosted.org/packages/fd/42/8e3c6a9a4b1a1360c1a2a39f0b972cef2cc9ebd56025168c4137192a9321/tomli-2.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b5870b50c9db823c595983571d1296a6ff3e1b88f734a4c8f6fc6188397de005", size = 253109, upload-time = "2025-10-08T22:01:34.052Z" }, + { url = "https://files.pythonhosted.org/packages/22/0c/b4da635000a71b5f80130937eeac12e686eefb376b8dee113b4a582bba42/tomli-2.3.0-cp314-cp314-win32.whl", hash = "sha256:feb0dacc61170ed7ab602d3d972a58f14ee3ee60494292d384649a3dc38ef463", size = 97930, upload-time = "2025-10-08T22:01:35.082Z" }, + { url = "https://files.pythonhosted.org/packages/b9/74/cb1abc870a418ae99cd5c9547d6bce30701a954e0e721821df483ef7223c/tomli-2.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:b273fcbd7fc64dc3600c098e39136522650c49bca95df2d11cf3b626422392c8", size = 107964, upload-time = "2025-10-08T22:01:36.057Z" }, + { url = "https://files.pythonhosted.org/packages/54/78/5c46fff6432a712af9f792944f4fcd7067d8823157949f4e40c56b8b3c83/tomli-2.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:940d56ee0410fa17ee1f12b817b37a4d4e4dc4d27340863cc67236c74f582e77", size = 163065, upload-time = "2025-10-08T22:01:37.27Z" }, + { url = "https://files.pythonhosted.org/packages/39/67/f85d9bd23182f45eca8939cd2bc7050e1f90c41f4a2ecbbd5963a1d1c486/tomli-2.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f85209946d1fe94416debbb88d00eb92ce9cd5266775424ff81bc959e001acaf", size = 159088, upload-time = "2025-10-08T22:01:38.235Z" }, + { url = "https://files.pythonhosted.org/packages/26/5a/4b546a0405b9cc0659b399f12b6adb750757baf04250b148d3c5059fc4eb/tomli-2.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a56212bdcce682e56b0aaf79e869ba5d15a6163f88d5451cbde388d48b13f530", size = 268193, upload-time = "2025-10-08T22:01:39.712Z" }, + { url = "https://files.pythonhosted.org/packages/42/4f/2c12a72ae22cf7b59a7fe75b3465b7aba40ea9145d026ba41cb382075b0e/tomli-2.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5f3ffd1e098dfc032d4d3af5c0ac64f6d286d98bc148698356847b80fa4de1b", size = 275488, upload-time = "2025-10-08T22:01:40.773Z" }, + { url = "https://files.pythonhosted.org/packages/92/04/a038d65dbe160c3aa5a624e93ad98111090f6804027d474ba9c37c8ae186/tomli-2.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5e01decd096b1530d97d5d85cb4dff4af2d8347bd35686654a004f8dea20fc67", size = 272669, upload-time = "2025-10-08T22:01:41.824Z" }, + { url = "https://files.pythonhosted.org/packages/be/2f/8b7c60a9d1612a7cbc39ffcca4f21a73bf368a80fc25bccf8253e2563267/tomli-2.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:8a35dd0e643bb2610f156cca8db95d213a90015c11fee76c946aa62b7ae7e02f", size = 279709, upload-time = "2025-10-08T22:01:43.177Z" }, + { url = "https://files.pythonhosted.org/packages/7e/46/cc36c679f09f27ded940281c38607716c86cf8ba4a518d524e349c8b4874/tomli-2.3.0-cp314-cp314t-win32.whl", hash = "sha256:a1f7f282fe248311650081faafa5f4732bdbfef5d45fe3f2e702fbc6f2d496e0", size = 107563, upload-time = "2025-10-08T22:01:44.233Z" }, + { url = "https://files.pythonhosted.org/packages/84/ff/426ca8683cf7b753614480484f6437f568fd2fda2edbdf57a2d3d8b27a0b/tomli-2.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:70a251f8d4ba2d9ac2542eecf008b3c8a9fc5c3f9f02c56a9d7952612be2fdba", size = 119756, upload-time = "2025-10-08T22:01:45.234Z" }, + { url = "https://files.pythonhosted.org/packages/77/b8/0135fadc89e73be292b473cb820b4f5a08197779206b33191e801feeae40/tomli-2.3.0-py3-none-any.whl", hash = "sha256:e95b1af3c5b07d9e643909b5abbec77cd9f1217e6d0bca72b0234736b9fb1f1b", size = 14408, upload-time = "2025-10-08T22:01:46.04Z" }, +] + +[[package]] +name = "types-click" +version = "7.1.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/00/ff/0e6a56108d45c80c61cdd4743312d0304d8192482aea4cce96c554aaa90d/types-click-7.1.8.tar.gz", hash = "sha256:b6604968be6401dc516311ca50708a0a28baa7a0cb840efd7412f0dbbff4e092", size = 10015, upload-time = "2021-11-23T12:28:01.701Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/ad/607454a5f991c5b3e14693a7113926758f889138371058a5f72f567fa131/types_click-7.1.8-py3-none-any.whl", hash = "sha256:8cb030a669e2e927461be9827375f83c16b8178c365852c060a34e24871e7e81", size = 12929, upload-time = "2021-11-23T12:27:59.493Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "urllib3" +version = "1.26.20" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "platform_python_implementation == 'PyPy'", +] +sdist = { url = "https://files.pythonhosted.org/packages/e4/e8/6ff5e6bc22095cfc59b6ea711b687e2b7ed4bdb373f7eeec370a97d7392f/urllib3-1.26.20.tar.gz", hash = "sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32", size = 307380, upload-time = "2024-08-29T15:43:11.37Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/cf/8435d5a7159e2a9c83a95896ed596f68cf798005fe107cc655b5c5c14704/urllib3-1.26.20-py2.py3-none-any.whl", hash = "sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e", size = 144225, upload-time = "2024-08-29T15:43:08.921Z" }, +] + +[[package]] +name = "urllib3" +version = "2.5.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "platform_python_implementation != 'PyPy'", +] +sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185, upload-time = "2025-06-18T14:07:41.644Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" }, +] + +[[package]] +name = "uvicorn" +version = "0.38.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cb/ce/f06b84e2697fef4688ca63bdb2fdf113ca0a3be33f94488f2cadb690b0cf/uvicorn-0.38.0.tar.gz", hash = "sha256:fd97093bdd120a2609fc0d3afe931d4d4ad688b6e75f0f929fde1bc36fe0e91d", size = 80605, upload-time = "2025-10-18T13:46:44.63Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/d9/d88e73ca598f4f6ff671fb5fde8a32925c2e08a637303a1d12883c7305fa/uvicorn-0.38.0-py3-none-any.whl", hash = "sha256:48c0afd214ceb59340075b4a052ea1ee91c16fbc2a9b1469cca0e54566977b02", size = 68109, upload-time = "2025-10-18T13:46:42.958Z" }, +] + +[[package]] +name = "vcrpy" +version = "7.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyyaml" }, + { name = "urllib3", version = "1.26.20", source = { registry = "https://pypi.org/simple" }, marker = "platform_python_implementation == 'PyPy'" }, + { name = "urllib3", version = "2.5.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_python_implementation != 'PyPy'" }, + { name = "wrapt" }, + { name = "yarl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/25/d3/856e06184d4572aada1dd559ddec3bedc46df1f2edc5ab2c91121a2cccdb/vcrpy-7.0.0.tar.gz", hash = "sha256:176391ad0425edde1680c5b20738ea3dc7fb942520a48d2993448050986b3a50", size = 85502, upload-time = "2024-12-31T00:07:57.894Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/13/5d/1f15b252890c968d42b348d1e9b0aa12d5bf3e776704178ec37cceccdb63/vcrpy-7.0.0-py2.py3-none-any.whl", hash = "sha256:55791e26c18daa363435054d8b35bd41a4ac441b6676167635d1b37a71dbe124", size = 42321, upload-time = "2024-12-31T00:07:55.277Z" }, +] + +[[package]] +name = "websockets" +version = "15.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/21/e6/26d09fab466b7ca9c7737474c52be4f76a40301b08362eb2dbc19dcc16c1/websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee", size = 177016, upload-time = "2025-03-05T20:03:41.606Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/32/18fcd5919c293a398db67443acd33fde142f283853076049824fc58e6f75/websockets-15.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431", size = 175423, upload-time = "2025-03-05T20:01:56.276Z" }, + { url = "https://files.pythonhosted.org/packages/76/70/ba1ad96b07869275ef42e2ce21f07a5b0148936688c2baf7e4a1f60d5058/websockets-15.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57", size = 173082, upload-time = "2025-03-05T20:01:57.563Z" }, + { url = "https://files.pythonhosted.org/packages/86/f2/10b55821dd40eb696ce4704a87d57774696f9451108cff0d2824c97e0f97/websockets-15.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905", size = 173330, upload-time = "2025-03-05T20:01:59.063Z" }, + { url = "https://files.pythonhosted.org/packages/a5/90/1c37ae8b8a113d3daf1065222b6af61cc44102da95388ac0018fcb7d93d9/websockets-15.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562", size = 182878, upload-time = "2025-03-05T20:02:00.305Z" }, + { url = "https://files.pythonhosted.org/packages/8e/8d/96e8e288b2a41dffafb78e8904ea7367ee4f891dafc2ab8d87e2124cb3d3/websockets-15.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792", size = 181883, upload-time = "2025-03-05T20:02:03.148Z" }, + { url = "https://files.pythonhosted.org/packages/93/1f/5d6dbf551766308f6f50f8baf8e9860be6182911e8106da7a7f73785f4c4/websockets-15.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413", size = 182252, upload-time = "2025-03-05T20:02:05.29Z" }, + { url = "https://files.pythonhosted.org/packages/d4/78/2d4fed9123e6620cbf1706c0de8a1632e1a28e7774d94346d7de1bba2ca3/websockets-15.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8", size = 182521, upload-time = "2025-03-05T20:02:07.458Z" }, + { url = "https://files.pythonhosted.org/packages/e7/3b/66d4c1b444dd1a9823c4a81f50231b921bab54eee2f69e70319b4e21f1ca/websockets-15.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3", size = 181958, upload-time = "2025-03-05T20:02:09.842Z" }, + { url = "https://files.pythonhosted.org/packages/08/ff/e9eed2ee5fed6f76fdd6032ca5cd38c57ca9661430bb3d5fb2872dc8703c/websockets-15.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf", size = 181918, upload-time = "2025-03-05T20:02:11.968Z" }, + { url = "https://files.pythonhosted.org/packages/d8/75/994634a49b7e12532be6a42103597b71098fd25900f7437d6055ed39930a/websockets-15.0.1-cp311-cp311-win32.whl", hash = "sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85", size = 176388, upload-time = "2025-03-05T20:02:13.32Z" }, + { url = "https://files.pythonhosted.org/packages/98/93/e36c73f78400a65f5e236cd376713c34182e6663f6889cd45a4a04d8f203/websockets-15.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065", size = 176828, upload-time = "2025-03-05T20:02:14.585Z" }, + { url = "https://files.pythonhosted.org/packages/51/6b/4545a0d843594f5d0771e86463606a3988b5a09ca5123136f8a76580dd63/websockets-15.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3", size = 175437, upload-time = "2025-03-05T20:02:16.706Z" }, + { url = "https://files.pythonhosted.org/packages/f4/71/809a0f5f6a06522af902e0f2ea2757f71ead94610010cf570ab5c98e99ed/websockets-15.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665", size = 173096, upload-time = "2025-03-05T20:02:18.832Z" }, + { url = "https://files.pythonhosted.org/packages/3d/69/1a681dd6f02180916f116894181eab8b2e25b31e484c5d0eae637ec01f7c/websockets-15.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2", size = 173332, upload-time = "2025-03-05T20:02:20.187Z" }, + { url = "https://files.pythonhosted.org/packages/a6/02/0073b3952f5bce97eafbb35757f8d0d54812b6174ed8dd952aa08429bcc3/websockets-15.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215", size = 183152, upload-time = "2025-03-05T20:02:22.286Z" }, + { url = "https://files.pythonhosted.org/packages/74/45/c205c8480eafd114b428284840da0b1be9ffd0e4f87338dc95dc6ff961a1/websockets-15.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5", size = 182096, upload-time = "2025-03-05T20:02:24.368Z" }, + { url = "https://files.pythonhosted.org/packages/14/8f/aa61f528fba38578ec553c145857a181384c72b98156f858ca5c8e82d9d3/websockets-15.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65", size = 182523, upload-time = "2025-03-05T20:02:25.669Z" }, + { url = "https://files.pythonhosted.org/packages/ec/6d/0267396610add5bc0d0d3e77f546d4cd287200804fe02323797de77dbce9/websockets-15.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe", size = 182790, upload-time = "2025-03-05T20:02:26.99Z" }, + { url = "https://files.pythonhosted.org/packages/02/05/c68c5adbf679cf610ae2f74a9b871ae84564462955d991178f95a1ddb7dd/websockets-15.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4", size = 182165, upload-time = "2025-03-05T20:02:30.291Z" }, + { url = "https://files.pythonhosted.org/packages/29/93/bb672df7b2f5faac89761cb5fa34f5cec45a4026c383a4b5761c6cea5c16/websockets-15.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597", size = 182160, upload-time = "2025-03-05T20:02:31.634Z" }, + { url = "https://files.pythonhosted.org/packages/ff/83/de1f7709376dc3ca9b7eeb4b9a07b4526b14876b6d372a4dc62312bebee0/websockets-15.0.1-cp312-cp312-win32.whl", hash = "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9", size = 176395, upload-time = "2025-03-05T20:02:33.017Z" }, + { url = "https://files.pythonhosted.org/packages/7d/71/abf2ebc3bbfa40f391ce1428c7168fb20582d0ff57019b69ea20fa698043/websockets-15.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7", size = 176841, upload-time = "2025-03-05T20:02:34.498Z" }, + { url = "https://files.pythonhosted.org/packages/cb/9f/51f0cf64471a9d2b4d0fc6c534f323b664e7095640c34562f5182e5a7195/websockets-15.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931", size = 175440, upload-time = "2025-03-05T20:02:36.695Z" }, + { url = "https://files.pythonhosted.org/packages/8a/05/aa116ec9943c718905997412c5989f7ed671bc0188ee2ba89520e8765d7b/websockets-15.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675", size = 173098, upload-time = "2025-03-05T20:02:37.985Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0b/33cef55ff24f2d92924923c99926dcce78e7bd922d649467f0eda8368923/websockets-15.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151", size = 173329, upload-time = "2025-03-05T20:02:39.298Z" }, + { url = "https://files.pythonhosted.org/packages/31/1d/063b25dcc01faa8fada1469bdf769de3768b7044eac9d41f734fd7b6ad6d/websockets-15.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22", size = 183111, upload-time = "2025-03-05T20:02:40.595Z" }, + { url = "https://files.pythonhosted.org/packages/93/53/9a87ee494a51bf63e4ec9241c1ccc4f7c2f45fff85d5bde2ff74fcb68b9e/websockets-15.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f", size = 182054, upload-time = "2025-03-05T20:02:41.926Z" }, + { url = "https://files.pythonhosted.org/packages/ff/b2/83a6ddf56cdcbad4e3d841fcc55d6ba7d19aeb89c50f24dd7e859ec0805f/websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8", size = 182496, upload-time = "2025-03-05T20:02:43.304Z" }, + { url = "https://files.pythonhosted.org/packages/98/41/e7038944ed0abf34c45aa4635ba28136f06052e08fc2168520bb8b25149f/websockets-15.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375", size = 182829, upload-time = "2025-03-05T20:02:48.812Z" }, + { url = "https://files.pythonhosted.org/packages/e0/17/de15b6158680c7623c6ef0db361da965ab25d813ae54fcfeae2e5b9ef910/websockets-15.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d", size = 182217, upload-time = "2025-03-05T20:02:50.14Z" }, + { url = "https://files.pythonhosted.org/packages/33/2b/1f168cb6041853eef0362fb9554c3824367c5560cbdaad89ac40f8c2edfc/websockets-15.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4", size = 182195, upload-time = "2025-03-05T20:02:51.561Z" }, + { url = "https://files.pythonhosted.org/packages/86/eb/20b6cdf273913d0ad05a6a14aed4b9a85591c18a987a3d47f20fa13dcc47/websockets-15.0.1-cp313-cp313-win32.whl", hash = "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa", size = 176393, upload-time = "2025-03-05T20:02:53.814Z" }, + { url = "https://files.pythonhosted.org/packages/1b/6c/c65773d6cab416a64d191d6ee8a8b1c68a09970ea6909d16965d26bfed1e/websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561", size = 176837, upload-time = "2025-03-05T20:02:55.237Z" }, + { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743, upload-time = "2025-03-05T20:03:39.41Z" }, +] + +[[package]] +name = "wrapt" +version = "2.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/49/2a/6de8a50cb435b7f42c46126cf1a54b2aab81784e74c8595c8e025e8f36d3/wrapt-2.0.1.tar.gz", hash = "sha256:9c9c635e78497cacb81e84f8b11b23e0aacac7a136e73b8e5b2109a1d9fc468f", size = 82040, upload-time = "2025-11-07T00:45:33.312Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/60/553997acf3939079dab022e37b67b1904b5b0cc235503226898ba573b10c/wrapt-2.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0e17283f533a0d24d6e5429a7d11f250a58d28b4ae5186f8f47853e3e70d2590", size = 77480, upload-time = "2025-11-07T00:43:30.573Z" }, + { url = "https://files.pythonhosted.org/packages/2d/50/e5b3d30895d77c52105c6d5cbf94d5b38e2a3dd4a53d22d246670da98f7c/wrapt-2.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:85df8d92158cb8f3965aecc27cf821461bb5f40b450b03facc5d9f0d4d6ddec6", size = 60690, upload-time = "2025-11-07T00:43:31.594Z" }, + { url = "https://files.pythonhosted.org/packages/f0/40/660b2898703e5cbbb43db10cdefcc294274458c3ca4c68637c2b99371507/wrapt-2.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c1be685ac7700c966b8610ccc63c3187a72e33cab53526a27b2a285a662cd4f7", size = 61578, upload-time = "2025-11-07T00:43:32.918Z" }, + { url = "https://files.pythonhosted.org/packages/5b/36/825b44c8a10556957bc0c1d84c7b29a40e05fcf1873b6c40aa9dbe0bd972/wrapt-2.0.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:df0b6d3b95932809c5b3fecc18fda0f1e07452d05e2662a0b35548985f256e28", size = 114115, upload-time = "2025-11-07T00:43:35.605Z" }, + { url = "https://files.pythonhosted.org/packages/83/73/0a5d14bb1599677304d3c613a55457d34c344e9b60eda8a737c2ead7619e/wrapt-2.0.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4da7384b0e5d4cae05c97cd6f94faaf78cc8b0f791fc63af43436d98c4ab37bb", size = 116157, upload-time = "2025-11-07T00:43:37.058Z" }, + { url = "https://files.pythonhosted.org/packages/01/22/1c158fe763dbf0a119f985d945711d288994fe5514c0646ebe0eb18b016d/wrapt-2.0.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ec65a78fbd9d6f083a15d7613b2800d5663dbb6bb96003899c834beaa68b242c", size = 112535, upload-time = "2025-11-07T00:43:34.138Z" }, + { url = "https://files.pythonhosted.org/packages/5c/28/4f16861af67d6de4eae9927799b559c20ebdd4fe432e89ea7fe6fcd9d709/wrapt-2.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7de3cc939be0e1174969f943f3b44e0d79b6f9a82198133a5b7fc6cc92882f16", size = 115404, upload-time = "2025-11-07T00:43:39.214Z" }, + { url = "https://files.pythonhosted.org/packages/a0/8b/7960122e625fad908f189b59c4aae2d50916eb4098b0fb2819c5a177414f/wrapt-2.0.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:fb1a5b72cbd751813adc02ef01ada0b0d05d3dcbc32976ce189a1279d80ad4a2", size = 111802, upload-time = "2025-11-07T00:43:40.476Z" }, + { url = "https://files.pythonhosted.org/packages/3e/73/7881eee5ac31132a713ab19a22c9e5f1f7365c8b1df50abba5d45b781312/wrapt-2.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3fa272ca34332581e00bf7773e993d4f632594eb2d1b0b162a9038df0fd971dd", size = 113837, upload-time = "2025-11-07T00:43:42.921Z" }, + { url = "https://files.pythonhosted.org/packages/45/00/9499a3d14e636d1f7089339f96c4409bbc7544d0889f12264efa25502ae8/wrapt-2.0.1-cp311-cp311-win32.whl", hash = "sha256:fc007fdf480c77301ab1afdbb6ab22a5deee8885f3b1ed7afcb7e5e84a0e27be", size = 58028, upload-time = "2025-11-07T00:43:47.369Z" }, + { url = "https://files.pythonhosted.org/packages/70/5d/8f3d7eea52f22638748f74b102e38fdf88cb57d08ddeb7827c476a20b01b/wrapt-2.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:47434236c396d04875180171ee1f3815ca1eada05e24a1ee99546320d54d1d1b", size = 60385, upload-time = "2025-11-07T00:43:44.34Z" }, + { url = "https://files.pythonhosted.org/packages/14/e2/32195e57a8209003587bbbad44d5922f13e0ced2a493bb46ca882c5b123d/wrapt-2.0.1-cp311-cp311-win_arm64.whl", hash = "sha256:837e31620e06b16030b1d126ed78e9383815cbac914693f54926d816d35d8edf", size = 58893, upload-time = "2025-11-07T00:43:46.161Z" }, + { url = "https://files.pythonhosted.org/packages/cb/73/8cb252858dc8254baa0ce58ce382858e3a1cf616acebc497cb13374c95c6/wrapt-2.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1fdbb34da15450f2b1d735a0e969c24bdb8d8924892380126e2a293d9902078c", size = 78129, upload-time = "2025-11-07T00:43:48.852Z" }, + { url = "https://files.pythonhosted.org/packages/19/42/44a0db2108526ee6e17a5ab72478061158f34b08b793df251d9fbb9a7eb4/wrapt-2.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3d32794fe940b7000f0519904e247f902f0149edbe6316c710a8562fb6738841", size = 61205, upload-time = "2025-11-07T00:43:50.402Z" }, + { url = "https://files.pythonhosted.org/packages/4d/8a/5b4b1e44b791c22046e90d9b175f9a7581a8cc7a0debbb930f81e6ae8e25/wrapt-2.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:386fb54d9cd903ee0012c09291336469eb7b244f7183d40dc3e86a16a4bace62", size = 61692, upload-time = "2025-11-07T00:43:51.678Z" }, + { url = "https://files.pythonhosted.org/packages/11/53/3e794346c39f462bcf1f58ac0487ff9bdad02f9b6d5ee2dc84c72e0243b2/wrapt-2.0.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7b219cb2182f230676308cdcacd428fa837987b89e4b7c5c9025088b8a6c9faf", size = 121492, upload-time = "2025-11-07T00:43:55.017Z" }, + { url = "https://files.pythonhosted.org/packages/c6/7e/10b7b0e8841e684c8ca76b462a9091c45d62e8f2de9c4b1390b690eadf16/wrapt-2.0.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:641e94e789b5f6b4822bb8d8ebbdfc10f4e4eae7756d648b717d980f657a9eb9", size = 123064, upload-time = "2025-11-07T00:43:56.323Z" }, + { url = "https://files.pythonhosted.org/packages/0e/d1/3c1e4321fc2f5ee7fd866b2d822aa89b84495f28676fd976c47327c5b6aa/wrapt-2.0.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fe21b118b9f58859b5ebaa4b130dee18669df4bd111daad082b7beb8799ad16b", size = 117403, upload-time = "2025-11-07T00:43:53.258Z" }, + { url = "https://files.pythonhosted.org/packages/a4/b0/d2f0a413cf201c8c2466de08414a15420a25aa83f53e647b7255cc2fab5d/wrapt-2.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:17fb85fa4abc26a5184d93b3efd2dcc14deb4b09edcdb3535a536ad34f0b4dba", size = 121500, upload-time = "2025-11-07T00:43:57.468Z" }, + { url = "https://files.pythonhosted.org/packages/bd/45/bddb11d28ca39970a41ed48a26d210505120f925918592283369219f83cc/wrapt-2.0.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:b89ef9223d665ab255ae42cc282d27d69704d94be0deffc8b9d919179a609684", size = 116299, upload-time = "2025-11-07T00:43:58.877Z" }, + { url = "https://files.pythonhosted.org/packages/81/af/34ba6dd570ef7a534e7eec0c25e2615c355602c52aba59413411c025a0cb/wrapt-2.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a453257f19c31b31ba593c30d997d6e5be39e3b5ad9148c2af5a7314061c63eb", size = 120622, upload-time = "2025-11-07T00:43:59.962Z" }, + { url = "https://files.pythonhosted.org/packages/e2/3e/693a13b4146646fb03254636f8bafd20c621955d27d65b15de07ab886187/wrapt-2.0.1-cp312-cp312-win32.whl", hash = "sha256:3e271346f01e9c8b1130a6a3b0e11908049fe5be2d365a5f402778049147e7e9", size = 58246, upload-time = "2025-11-07T00:44:03.169Z" }, + { url = "https://files.pythonhosted.org/packages/a7/36/715ec5076f925a6be95f37917b66ebbeaa1372d1862c2ccd7a751574b068/wrapt-2.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:2da620b31a90cdefa9cd0c2b661882329e2e19d1d7b9b920189956b76c564d75", size = 60492, upload-time = "2025-11-07T00:44:01.027Z" }, + { url = "https://files.pythonhosted.org/packages/ef/3e/62451cd7d80f65cc125f2b426b25fbb6c514bf6f7011a0c3904fc8c8df90/wrapt-2.0.1-cp312-cp312-win_arm64.whl", hash = "sha256:aea9c7224c302bc8bfc892b908537f56c430802560e827b75ecbde81b604598b", size = 58987, upload-time = "2025-11-07T00:44:02.095Z" }, + { url = "https://files.pythonhosted.org/packages/ad/fe/41af4c46b5e498c90fc87981ab2972fbd9f0bccda597adb99d3d3441b94b/wrapt-2.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:47b0f8bafe90f7736151f61482c583c86b0693d80f075a58701dd1549b0010a9", size = 78132, upload-time = "2025-11-07T00:44:04.628Z" }, + { url = "https://files.pythonhosted.org/packages/1c/92/d68895a984a5ebbbfb175512b0c0aad872354a4a2484fbd5552e9f275316/wrapt-2.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:cbeb0971e13b4bd81d34169ed57a6dda017328d1a22b62fda45e1d21dd06148f", size = 61211, upload-time = "2025-11-07T00:44:05.626Z" }, + { url = "https://files.pythonhosted.org/packages/e8/26/ba83dc5ae7cf5aa2b02364a3d9cf74374b86169906a1f3ade9a2d03cf21c/wrapt-2.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:eb7cffe572ad0a141a7886a1d2efa5bef0bf7fe021deeea76b3ab334d2c38218", size = 61689, upload-time = "2025-11-07T00:44:06.719Z" }, + { url = "https://files.pythonhosted.org/packages/cf/67/d7a7c276d874e5d26738c22444d466a3a64ed541f6ef35f740dbd865bab4/wrapt-2.0.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c8d60527d1ecfc131426b10d93ab5d53e08a09c5fa0175f6b21b3252080c70a9", size = 121502, upload-time = "2025-11-07T00:44:09.557Z" }, + { url = "https://files.pythonhosted.org/packages/0f/6b/806dbf6dd9579556aab22fc92908a876636e250f063f71548a8660382184/wrapt-2.0.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c654eafb01afac55246053d67a4b9a984a3567c3808bb7df2f8de1c1caba2e1c", size = 123110, upload-time = "2025-11-07T00:44:10.64Z" }, + { url = "https://files.pythonhosted.org/packages/e5/08/cdbb965fbe4c02c5233d185d070cabed2ecc1f1e47662854f95d77613f57/wrapt-2.0.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:98d873ed6c8b4ee2418f7afce666751854d6d03e3c0ec2a399bb039cd2ae89db", size = 117434, upload-time = "2025-11-07T00:44:08.138Z" }, + { url = "https://files.pythonhosted.org/packages/2d/d1/6aae2ce39db4cb5216302fa2e9577ad74424dfbe315bd6669725569e048c/wrapt-2.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c9e850f5b7fc67af856ff054c71690d54fa940c3ef74209ad9f935b4f66a0233", size = 121533, upload-time = "2025-11-07T00:44:12.142Z" }, + { url = "https://files.pythonhosted.org/packages/79/35/565abf57559fbe0a9155c29879ff43ce8bd28d2ca61033a3a3dd67b70794/wrapt-2.0.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:e505629359cb5f751e16e30cf3f91a1d3ddb4552480c205947da415d597f7ac2", size = 116324, upload-time = "2025-11-07T00:44:13.28Z" }, + { url = "https://files.pythonhosted.org/packages/e1/e0/53ff5e76587822ee33e560ad55876d858e384158272cd9947abdd4ad42ca/wrapt-2.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2879af909312d0baf35f08edeea918ee3af7ab57c37fe47cb6a373c9f2749c7b", size = 120627, upload-time = "2025-11-07T00:44:14.431Z" }, + { url = "https://files.pythonhosted.org/packages/7c/7b/38df30fd629fbd7612c407643c63e80e1c60bcc982e30ceeae163a9800e7/wrapt-2.0.1-cp313-cp313-win32.whl", hash = "sha256:d67956c676be5a24102c7407a71f4126d30de2a569a1c7871c9f3cabc94225d7", size = 58252, upload-time = "2025-11-07T00:44:17.814Z" }, + { url = "https://files.pythonhosted.org/packages/85/64/d3954e836ea67c4d3ad5285e5c8fd9d362fd0a189a2db622df457b0f4f6a/wrapt-2.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:9ca66b38dd642bf90c59b6738af8070747b610115a39af2498535f62b5cdc1c3", size = 60500, upload-time = "2025-11-07T00:44:15.561Z" }, + { url = "https://files.pythonhosted.org/packages/89/4e/3c8b99ac93527cfab7f116089db120fef16aac96e5f6cdb724ddf286086d/wrapt-2.0.1-cp313-cp313-win_arm64.whl", hash = "sha256:5a4939eae35db6b6cec8e7aa0e833dcca0acad8231672c26c2a9ab7a0f8ac9c8", size = 58993, upload-time = "2025-11-07T00:44:16.65Z" }, + { url = "https://files.pythonhosted.org/packages/f9/f4/eff2b7d711cae20d220780b9300faa05558660afb93f2ff5db61fe725b9a/wrapt-2.0.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a52f93d95c8d38fed0669da2ebdb0b0376e895d84596a976c15a9eb45e3eccb3", size = 82028, upload-time = "2025-11-07T00:44:18.944Z" }, + { url = "https://files.pythonhosted.org/packages/0c/67/cb945563f66fd0f61a999339460d950f4735c69f18f0a87ca586319b1778/wrapt-2.0.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4e54bbf554ee29fcceee24fa41c4d091398b911da6e7f5d7bffda963c9aed2e1", size = 62949, upload-time = "2025-11-07T00:44:20.074Z" }, + { url = "https://files.pythonhosted.org/packages/ec/ca/f63e177f0bbe1e5cf5e8d9b74a286537cd709724384ff20860f8f6065904/wrapt-2.0.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:908f8c6c71557f4deaa280f55d0728c3bca0960e8c3dd5ceeeafb3c19942719d", size = 63681, upload-time = "2025-11-07T00:44:21.345Z" }, + { url = "https://files.pythonhosted.org/packages/39/a1/1b88fcd21fd835dca48b556daef750952e917a2794fa20c025489e2e1f0f/wrapt-2.0.1-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e2f84e9af2060e3904a32cea9bb6db23ce3f91cfd90c6b426757cf7cc01c45c7", size = 152696, upload-time = "2025-11-07T00:44:24.318Z" }, + { url = "https://files.pythonhosted.org/packages/62/1c/d9185500c1960d9f5f77b9c0b890b7fc62282b53af7ad1b6bd779157f714/wrapt-2.0.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e3612dc06b436968dfb9142c62e5dfa9eb5924f91120b3c8ff501ad878f90eb3", size = 158859, upload-time = "2025-11-07T00:44:25.494Z" }, + { url = "https://files.pythonhosted.org/packages/91/60/5d796ed0f481ec003220c7878a1d6894652efe089853a208ea0838c13086/wrapt-2.0.1-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6d2d947d266d99a1477cd005b23cbd09465276e302515e122df56bb9511aca1b", size = 146068, upload-time = "2025-11-07T00:44:22.81Z" }, + { url = "https://files.pythonhosted.org/packages/04/f8/75282dd72f102ddbfba137e1e15ecba47b40acff32c08ae97edbf53f469e/wrapt-2.0.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:7d539241e87b650cbc4c3ac9f32c8d1ac8a54e510f6dca3f6ab60dcfd48c9b10", size = 155724, upload-time = "2025-11-07T00:44:26.634Z" }, + { url = "https://files.pythonhosted.org/packages/5a/27/fe39c51d1b344caebb4a6a9372157bdb8d25b194b3561b52c8ffc40ac7d1/wrapt-2.0.1-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:4811e15d88ee62dbf5c77f2c3ff3932b1e3ac92323ba3912f51fc4016ce81ecf", size = 144413, upload-time = "2025-11-07T00:44:27.939Z" }, + { url = "https://files.pythonhosted.org/packages/83/2b/9f6b643fe39d4505c7bf926d7c2595b7cb4b607c8c6b500e56c6b36ac238/wrapt-2.0.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c1c91405fcf1d501fa5d55df21e58ea49e6b879ae829f1039faaf7e5e509b41e", size = 150325, upload-time = "2025-11-07T00:44:29.29Z" }, + { url = "https://files.pythonhosted.org/packages/bb/b6/20ffcf2558596a7f58a2e69c89597128781f0b88e124bf5a4cadc05b8139/wrapt-2.0.1-cp313-cp313t-win32.whl", hash = "sha256:e76e3f91f864e89db8b8d2a8311d57df93f01ad6bb1e9b9976d1f2e83e18315c", size = 59943, upload-time = "2025-11-07T00:44:33.211Z" }, + { url = "https://files.pythonhosted.org/packages/87/6a/0e56111cbb3320151eed5d3821ee1373be13e05b376ea0870711f18810c3/wrapt-2.0.1-cp313-cp313t-win_amd64.whl", hash = "sha256:83ce30937f0ba0d28818807b303a412440c4b63e39d3d8fc036a94764b728c92", size = 63240, upload-time = "2025-11-07T00:44:30.935Z" }, + { url = "https://files.pythonhosted.org/packages/1d/54/5ab4c53ea1f7f7e5c3e7c1095db92932cc32fd62359d285486d00c2884c3/wrapt-2.0.1-cp313-cp313t-win_arm64.whl", hash = "sha256:4b55cacc57e1dc2d0991dbe74c6419ffd415fb66474a02335cb10efd1aa3f84f", size = 60416, upload-time = "2025-11-07T00:44:32.002Z" }, + { url = "https://files.pythonhosted.org/packages/73/81/d08d83c102709258e7730d3cd25befd114c60e43ef3891d7e6877971c514/wrapt-2.0.1-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:5e53b428f65ece6d9dad23cb87e64506392b720a0b45076c05354d27a13351a1", size = 78290, upload-time = "2025-11-07T00:44:34.691Z" }, + { url = "https://files.pythonhosted.org/packages/f6/14/393afba2abb65677f313aa680ff0981e829626fed39b6a7e3ec807487790/wrapt-2.0.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ad3ee9d0f254851c71780966eb417ef8e72117155cff04821ab9b60549694a55", size = 61255, upload-time = "2025-11-07T00:44:35.762Z" }, + { url = "https://files.pythonhosted.org/packages/c4/10/a4a1f2fba205a9462e36e708ba37e5ac95f4987a0f1f8fd23f0bf1fc3b0f/wrapt-2.0.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d7b822c61ed04ee6ad64bc90d13368ad6eb094db54883b5dde2182f67a7f22c0", size = 61797, upload-time = "2025-11-07T00:44:37.22Z" }, + { url = "https://files.pythonhosted.org/packages/12/db/99ba5c37cf1c4fad35349174f1e38bd8d992340afc1ff27f526729b98986/wrapt-2.0.1-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7164a55f5e83a9a0b031d3ffab4d4e36bbec42e7025db560f225489fa929e509", size = 120470, upload-time = "2025-11-07T00:44:39.425Z" }, + { url = "https://files.pythonhosted.org/packages/30/3f/a1c8d2411eb826d695fc3395a431757331582907a0ec59afce8fe8712473/wrapt-2.0.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e60690ba71a57424c8d9ff28f8d006b7ad7772c22a4af432188572cd7fa004a1", size = 122851, upload-time = "2025-11-07T00:44:40.582Z" }, + { url = "https://files.pythonhosted.org/packages/b3/8d/72c74a63f201768d6a04a8845c7976f86be6f5ff4d74996c272cefc8dafc/wrapt-2.0.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3cd1a4bd9a7a619922a8557e1318232e7269b5fb69d4ba97b04d20450a6bf970", size = 117433, upload-time = "2025-11-07T00:44:38.313Z" }, + { url = "https://files.pythonhosted.org/packages/c7/5a/df37cf4042cb13b08256f8e27023e2f9b3d471d553376616591bb99bcb31/wrapt-2.0.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b4c2e3d777e38e913b8ce3a6257af72fb608f86a1df471cb1d4339755d0a807c", size = 121280, upload-time = "2025-11-07T00:44:41.69Z" }, + { url = "https://files.pythonhosted.org/packages/54/34/40d6bc89349f9931e1186ceb3e5fbd61d307fef814f09fbbac98ada6a0c8/wrapt-2.0.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:3d366aa598d69416b5afedf1faa539fac40c1d80a42f6b236c88c73a3c8f2d41", size = 116343, upload-time = "2025-11-07T00:44:43.013Z" }, + { url = "https://files.pythonhosted.org/packages/70/66/81c3461adece09d20781dee17c2366fdf0cb8754738b521d221ca056d596/wrapt-2.0.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:c235095d6d090aa903f1db61f892fffb779c1eaeb2a50e566b52001f7a0f66ed", size = 119650, upload-time = "2025-11-07T00:44:44.523Z" }, + { url = "https://files.pythonhosted.org/packages/46/3a/d0146db8be8761a9e388cc9cc1c312b36d583950ec91696f19bbbb44af5a/wrapt-2.0.1-cp314-cp314-win32.whl", hash = "sha256:bfb5539005259f8127ea9c885bdc231978c06b7a980e63a8a61c8c4c979719d0", size = 58701, upload-time = "2025-11-07T00:44:48.277Z" }, + { url = "https://files.pythonhosted.org/packages/1a/38/5359da9af7d64554be63e9046164bd4d8ff289a2dd365677d25ba3342c08/wrapt-2.0.1-cp314-cp314-win_amd64.whl", hash = "sha256:4ae879acc449caa9ed43fc36ba08392b9412ee67941748d31d94e3cedb36628c", size = 60947, upload-time = "2025-11-07T00:44:46.086Z" }, + { url = "https://files.pythonhosted.org/packages/aa/3f/96db0619276a833842bf36343685fa04f987dd6e3037f314531a1e00492b/wrapt-2.0.1-cp314-cp314-win_arm64.whl", hash = "sha256:8639b843c9efd84675f1e100ed9e99538ebea7297b62c4b45a7042edb84db03e", size = 59359, upload-time = "2025-11-07T00:44:47.164Z" }, + { url = "https://files.pythonhosted.org/packages/71/49/5f5d1e867bf2064bf3933bc6cf36ade23505f3902390e175e392173d36a2/wrapt-2.0.1-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:9219a1d946a9b32bb23ccae66bdb61e35c62773ce7ca6509ceea70f344656b7b", size = 82031, upload-time = "2025-11-07T00:44:49.4Z" }, + { url = "https://files.pythonhosted.org/packages/2b/89/0009a218d88db66ceb83921e5685e820e2c61b59bbbb1324ba65342668bc/wrapt-2.0.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:fa4184e74197af3adad3c889a1af95b53bb0466bced92ea99a0c014e48323eec", size = 62952, upload-time = "2025-11-07T00:44:50.74Z" }, + { url = "https://files.pythonhosted.org/packages/ae/18/9b968e920dd05d6e44bcc918a046d02afea0fb31b2f1c80ee4020f377cbe/wrapt-2.0.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c5ef2f2b8a53b7caee2f797ef166a390fef73979b15778a4a153e4b5fedce8fa", size = 63688, upload-time = "2025-11-07T00:44:52.248Z" }, + { url = "https://files.pythonhosted.org/packages/a6/7d/78bdcb75826725885d9ea26c49a03071b10c4c92da93edda612910f150e4/wrapt-2.0.1-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:e042d653a4745be832d5aa190ff80ee4f02c34b21f4b785745eceacd0907b815", size = 152706, upload-time = "2025-11-07T00:44:54.613Z" }, + { url = "https://files.pythonhosted.org/packages/dd/77/cac1d46f47d32084a703df0d2d29d47e7eb2a7d19fa5cbca0e529ef57659/wrapt-2.0.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2afa23318136709c4b23d87d543b425c399887b4057936cd20386d5b1422b6fa", size = 158866, upload-time = "2025-11-07T00:44:55.79Z" }, + { url = "https://files.pythonhosted.org/packages/8a/11/b521406daa2421508903bf8d5e8b929216ec2af04839db31c0a2c525eee0/wrapt-2.0.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6c72328f668cf4c503ffcf9434c2b71fdd624345ced7941bc6693e61bbe36bef", size = 146148, upload-time = "2025-11-07T00:44:53.388Z" }, + { url = "https://files.pythonhosted.org/packages/0c/c0/340b272bed297baa7c9ce0c98ef7017d9c035a17a6a71dce3184b8382da2/wrapt-2.0.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:3793ac154afb0e5b45d1233cb94d354ef7a983708cc3bb12563853b1d8d53747", size = 155737, upload-time = "2025-11-07T00:44:56.971Z" }, + { url = "https://files.pythonhosted.org/packages/f3/93/bfcb1fb2bdf186e9c2883a4d1ab45ab099c79cbf8f4e70ea453811fa3ea7/wrapt-2.0.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:fec0d993ecba3991645b4857837277469c8cc4c554a7e24d064d1ca291cfb81f", size = 144451, upload-time = "2025-11-07T00:44:58.515Z" }, + { url = "https://files.pythonhosted.org/packages/d2/6b/dca504fb18d971139d232652656180e3bd57120e1193d9a5899c3c0b7cdd/wrapt-2.0.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:949520bccc1fa227274da7d03bf238be15389cd94e32e4297b92337df9b7a349", size = 150353, upload-time = "2025-11-07T00:44:59.753Z" }, + { url = "https://files.pythonhosted.org/packages/1d/f6/a1de4bd3653afdf91d250ca5c721ee51195df2b61a4603d4b373aa804d1d/wrapt-2.0.1-cp314-cp314t-win32.whl", hash = "sha256:be9e84e91d6497ba62594158d3d31ec0486c60055c49179edc51ee43d095f79c", size = 60609, upload-time = "2025-11-07T00:45:03.315Z" }, + { url = "https://files.pythonhosted.org/packages/01/3a/07cd60a9d26fe73efead61c7830af975dfdba8537632d410462672e4432b/wrapt-2.0.1-cp314-cp314t-win_amd64.whl", hash = "sha256:61c4956171c7434634401db448371277d07032a81cc21c599c22953374781395", size = 64038, upload-time = "2025-11-07T00:45:00.948Z" }, + { url = "https://files.pythonhosted.org/packages/41/99/8a06b8e17dddbf321325ae4eb12465804120f699cd1b8a355718300c62da/wrapt-2.0.1-cp314-cp314t-win_arm64.whl", hash = "sha256:35cdbd478607036fee40273be8ed54a451f5f23121bd9d4be515158f9498f7ad", size = 60634, upload-time = "2025-11-07T00:45:02.087Z" }, + { url = "https://files.pythonhosted.org/packages/15/d1/b51471c11592ff9c012bd3e2f7334a6ff2f42a7aed2caffcf0bdddc9cb89/wrapt-2.0.1-py3-none-any.whl", hash = "sha256:4d2ce1bf1a48c5277d7969259232b57645aae5686dba1eaeade39442277afbca", size = 44046, upload-time = "2025-11-07T00:45:32.116Z" }, +] + +[[package]] +name = "yarl" +version = "1.22.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "multidict" }, + { name = "propcache" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/57/63/0c6ebca57330cd313f6102b16dd57ffaf3ec4c83403dcb45dbd15c6f3ea1/yarl-1.22.0.tar.gz", hash = "sha256:bebf8557577d4401ba8bd9ff33906f1376c877aa78d1fe216ad01b4d6745af71", size = 187169, upload-time = "2025-10-06T14:12:55.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4d/27/5ab13fc84c76a0250afd3d26d5936349a35be56ce5785447d6c423b26d92/yarl-1.22.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ab72135b1f2db3fed3997d7e7dc1b80573c67138023852b6efb336a5eae6511", size = 141607, upload-time = "2025-10-06T14:09:16.298Z" }, + { url = "https://files.pythonhosted.org/packages/6a/a1/d065d51d02dc02ce81501d476b9ed2229d9a990818332242a882d5d60340/yarl-1.22.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:669930400e375570189492dc8d8341301578e8493aec04aebc20d4717f899dd6", size = 94027, upload-time = "2025-10-06T14:09:17.786Z" }, + { url = "https://files.pythonhosted.org/packages/c1/da/8da9f6a53f67b5106ffe902c6fa0164e10398d4e150d85838b82f424072a/yarl-1.22.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:792a2af6d58177ef7c19cbf0097aba92ca1b9cb3ffdd9c7470e156c8f9b5e028", size = 94963, upload-time = "2025-10-06T14:09:19.662Z" }, + { url = "https://files.pythonhosted.org/packages/68/fe/2c1f674960c376e29cb0bec1249b117d11738db92a6ccc4a530b972648db/yarl-1.22.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3ea66b1c11c9150f1372f69afb6b8116f2dd7286f38e14ea71a44eee9ec51b9d", size = 368406, upload-time = "2025-10-06T14:09:21.402Z" }, + { url = "https://files.pythonhosted.org/packages/95/26/812a540e1c3c6418fec60e9bbd38e871eaba9545e94fa5eff8f4a8e28e1e/yarl-1.22.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3e2daa88dc91870215961e96a039ec73e4937da13cf77ce17f9cad0c18df3503", size = 336581, upload-time = "2025-10-06T14:09:22.98Z" }, + { url = "https://files.pythonhosted.org/packages/0b/f5/5777b19e26fdf98563985e481f8be3d8a39f8734147a6ebf459d0dab5a6b/yarl-1.22.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba440ae430c00eee41509353628600212112cd5018d5def7e9b05ea7ac34eb65", size = 388924, upload-time = "2025-10-06T14:09:24.655Z" }, + { url = "https://files.pythonhosted.org/packages/86/08/24bd2477bd59c0bbd994fe1d93b126e0472e4e3df5a96a277b0a55309e89/yarl-1.22.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e6438cc8f23a9c1478633d216b16104a586b9761db62bfacb6425bac0a36679e", size = 392890, upload-time = "2025-10-06T14:09:26.617Z" }, + { url = "https://files.pythonhosted.org/packages/46/00/71b90ed48e895667ecfb1eaab27c1523ee2fa217433ed77a73b13205ca4b/yarl-1.22.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c52a6e78aef5cf47a98ef8e934755abf53953379b7d53e68b15ff4420e6683d", size = 365819, upload-time = "2025-10-06T14:09:28.544Z" }, + { url = "https://files.pythonhosted.org/packages/30/2d/f715501cae832651d3282387c6a9236cd26bd00d0ff1e404b3dc52447884/yarl-1.22.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3b06bcadaac49c70f4c88af4ffcfbe3dc155aab3163e75777818092478bcbbe7", size = 363601, upload-time = "2025-10-06T14:09:30.568Z" }, + { url = "https://files.pythonhosted.org/packages/f8/f9/a678c992d78e394e7126ee0b0e4e71bd2775e4334d00a9278c06a6cce96a/yarl-1.22.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:6944b2dc72c4d7f7052683487e3677456050ff77fcf5e6204e98caf785ad1967", size = 358072, upload-time = "2025-10-06T14:09:32.528Z" }, + { url = "https://files.pythonhosted.org/packages/2c/d1/b49454411a60edb6fefdcad4f8e6dbba7d8019e3a508a1c5836cba6d0781/yarl-1.22.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d5372ca1df0f91a86b047d1277c2aaf1edb32d78bbcefffc81b40ffd18f027ed", size = 385311, upload-time = "2025-10-06T14:09:34.634Z" }, + { url = "https://files.pythonhosted.org/packages/87/e5/40d7a94debb8448c7771a916d1861d6609dddf7958dc381117e7ba36d9e8/yarl-1.22.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:51af598701f5299012b8416486b40fceef8c26fc87dc6d7d1f6fc30609ea0aa6", size = 381094, upload-time = "2025-10-06T14:09:36.268Z" }, + { url = "https://files.pythonhosted.org/packages/35/d8/611cc282502381ad855448643e1ad0538957fc82ae83dfe7762c14069e14/yarl-1.22.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b266bd01fedeffeeac01a79ae181719ff848a5a13ce10075adbefc8f1daee70e", size = 370944, upload-time = "2025-10-06T14:09:37.872Z" }, + { url = "https://files.pythonhosted.org/packages/2d/df/fadd00fb1c90e1a5a8bd731fa3d3de2e165e5a3666a095b04e31b04d9cb6/yarl-1.22.0-cp311-cp311-win32.whl", hash = "sha256:a9b1ba5610a4e20f655258d5a1fdc7ebe3d837bb0e45b581398b99eb98b1f5ca", size = 81804, upload-time = "2025-10-06T14:09:39.359Z" }, + { url = "https://files.pythonhosted.org/packages/b5/f7/149bb6f45f267cb5c074ac40c01c6b3ea6d8a620d34b337f6321928a1b4d/yarl-1.22.0-cp311-cp311-win_amd64.whl", hash = "sha256:078278b9b0b11568937d9509b589ee83ef98ed6d561dfe2020e24a9fd08eaa2b", size = 86858, upload-time = "2025-10-06T14:09:41.068Z" }, + { url = "https://files.pythonhosted.org/packages/2b/13/88b78b93ad3f2f0b78e13bfaaa24d11cbc746e93fe76d8c06bf139615646/yarl-1.22.0-cp311-cp311-win_arm64.whl", hash = "sha256:b6a6f620cfe13ccec221fa312139135166e47ae169f8253f72a0abc0dae94376", size = 81637, upload-time = "2025-10-06T14:09:42.712Z" }, + { url = "https://files.pythonhosted.org/packages/75/ff/46736024fee3429b80a165a732e38e5d5a238721e634ab41b040d49f8738/yarl-1.22.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e340382d1afa5d32b892b3ff062436d592ec3d692aeea3bef3a5cfe11bbf8c6f", size = 142000, upload-time = "2025-10-06T14:09:44.631Z" }, + { url = "https://files.pythonhosted.org/packages/5a/9a/b312ed670df903145598914770eb12de1bac44599549b3360acc96878df8/yarl-1.22.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f1e09112a2c31ffe8d80be1b0988fa6a18c5d5cad92a9ffbb1c04c91bfe52ad2", size = 94338, upload-time = "2025-10-06T14:09:46.372Z" }, + { url = "https://files.pythonhosted.org/packages/ba/f5/0601483296f09c3c65e303d60c070a5c19fcdbc72daa061e96170785bc7d/yarl-1.22.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:939fe60db294c786f6b7c2d2e121576628468f65453d86b0fe36cb52f987bd74", size = 94909, upload-time = "2025-10-06T14:09:48.648Z" }, + { url = "https://files.pythonhosted.org/packages/60/41/9a1fe0b73dbcefce72e46cf149b0e0a67612d60bfc90fb59c2b2efdfbd86/yarl-1.22.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1651bf8e0398574646744c1885a41198eba53dc8a9312b954073f845c90a8df", size = 372940, upload-time = "2025-10-06T14:09:50.089Z" }, + { url = "https://files.pythonhosted.org/packages/17/7a/795cb6dfee561961c30b800f0ed616b923a2ec6258b5def2a00bf8231334/yarl-1.22.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b8a0588521a26bf92a57a1705b77b8b59044cdceccac7151bd8d229e66b8dedb", size = 345825, upload-time = "2025-10-06T14:09:52.142Z" }, + { url = "https://files.pythonhosted.org/packages/d7/93/a58f4d596d2be2ae7bab1a5846c4d270b894958845753b2c606d666744d3/yarl-1.22.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:42188e6a615c1a75bcaa6e150c3fe8f3e8680471a6b10150c5f7e83f47cc34d2", size = 386705, upload-time = "2025-10-06T14:09:54.128Z" }, + { url = "https://files.pythonhosted.org/packages/61/92/682279d0e099d0e14d7fd2e176bd04f48de1484f56546a3e1313cd6c8e7c/yarl-1.22.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f6d2cb59377d99718913ad9a151030d6f83ef420a2b8f521d94609ecc106ee82", size = 396518, upload-time = "2025-10-06T14:09:55.762Z" }, + { url = "https://files.pythonhosted.org/packages/db/0f/0d52c98b8a885aeda831224b78f3be7ec2e1aa4a62091f9f9188c3c65b56/yarl-1.22.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50678a3b71c751d58d7908edc96d332af328839eea883bb554a43f539101277a", size = 377267, upload-time = "2025-10-06T14:09:57.958Z" }, + { url = "https://files.pythonhosted.org/packages/22/42/d2685e35908cbeaa6532c1fc73e89e7f2efb5d8a7df3959ea8e37177c5a3/yarl-1.22.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e8fbaa7cec507aa24ea27a01456e8dd4b6fab829059b69844bd348f2d467124", size = 365797, upload-time = "2025-10-06T14:09:59.527Z" }, + { url = "https://files.pythonhosted.org/packages/a2/83/cf8c7bcc6355631762f7d8bdab920ad09b82efa6b722999dfb05afa6cfac/yarl-1.22.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:433885ab5431bc3d3d4f2f9bd15bfa1614c522b0f1405d62c4f926ccd69d04fa", size = 365535, upload-time = "2025-10-06T14:10:01.139Z" }, + { url = "https://files.pythonhosted.org/packages/25/e1/5302ff9b28f0c59cac913b91fe3f16c59a033887e57ce9ca5d41a3a94737/yarl-1.22.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:b790b39c7e9a4192dc2e201a282109ed2985a1ddbd5ac08dc56d0e121400a8f7", size = 382324, upload-time = "2025-10-06T14:10:02.756Z" }, + { url = "https://files.pythonhosted.org/packages/bf/cd/4617eb60f032f19ae3a688dc990d8f0d89ee0ea378b61cac81ede3e52fae/yarl-1.22.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31f0b53913220599446872d757257be5898019c85e7971599065bc55065dc99d", size = 383803, upload-time = "2025-10-06T14:10:04.552Z" }, + { url = "https://files.pythonhosted.org/packages/59/65/afc6e62bb506a319ea67b694551dab4a7e6fb7bf604e9bd9f3e11d575fec/yarl-1.22.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a49370e8f711daec68d09b821a34e1167792ee2d24d405cbc2387be4f158b520", size = 374220, upload-time = "2025-10-06T14:10:06.489Z" }, + { url = "https://files.pythonhosted.org/packages/e7/3d/68bf18d50dc674b942daec86a9ba922d3113d8399b0e52b9897530442da2/yarl-1.22.0-cp312-cp312-win32.whl", hash = "sha256:70dfd4f241c04bd9239d53b17f11e6ab672b9f1420364af63e8531198e3f5fe8", size = 81589, upload-time = "2025-10-06T14:10:09.254Z" }, + { url = "https://files.pythonhosted.org/packages/c8/9a/6ad1a9b37c2f72874f93e691b2e7ecb6137fb2b899983125db4204e47575/yarl-1.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:8884d8b332a5e9b88e23f60bb166890009429391864c685e17bd73a9eda9105c", size = 87213, upload-time = "2025-10-06T14:10:11.369Z" }, + { url = "https://files.pythonhosted.org/packages/44/c5/c21b562d1680a77634d748e30c653c3ca918beb35555cff24986fff54598/yarl-1.22.0-cp312-cp312-win_arm64.whl", hash = "sha256:ea70f61a47f3cc93bdf8b2f368ed359ef02a01ca6393916bc8ff877427181e74", size = 81330, upload-time = "2025-10-06T14:10:13.112Z" }, + { url = "https://files.pythonhosted.org/packages/ea/f3/d67de7260456ee105dc1d162d43a019ecad6b91e2f51809d6cddaa56690e/yarl-1.22.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8dee9c25c74997f6a750cd317b8ca63545169c098faee42c84aa5e506c819b53", size = 139980, upload-time = "2025-10-06T14:10:14.601Z" }, + { url = "https://files.pythonhosted.org/packages/01/88/04d98af0b47e0ef42597b9b28863b9060bb515524da0a65d5f4db160b2d5/yarl-1.22.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01e73b85a5434f89fc4fe27dcda2aff08ddf35e4d47bbbea3bdcd25321af538a", size = 93424, upload-time = "2025-10-06T14:10:16.115Z" }, + { url = "https://files.pythonhosted.org/packages/18/91/3274b215fd8442a03975ce6bee5fe6aa57a8326b29b9d3d56234a1dca244/yarl-1.22.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:22965c2af250d20c873cdbee8ff958fb809940aeb2e74ba5f20aaf6b7ac8c70c", size = 93821, upload-time = "2025-10-06T14:10:17.993Z" }, + { url = "https://files.pythonhosted.org/packages/61/3a/caf4e25036db0f2da4ca22a353dfeb3c9d3c95d2761ebe9b14df8fc16eb0/yarl-1.22.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4f15793aa49793ec8d1c708ab7f9eded1aa72edc5174cae703651555ed1b601", size = 373243, upload-time = "2025-10-06T14:10:19.44Z" }, + { url = "https://files.pythonhosted.org/packages/6e/9e/51a77ac7516e8e7803b06e01f74e78649c24ee1021eca3d6a739cb6ea49c/yarl-1.22.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5542339dcf2747135c5c85f68680353d5cb9ffd741c0f2e8d832d054d41f35a", size = 342361, upload-time = "2025-10-06T14:10:21.124Z" }, + { url = "https://files.pythonhosted.org/packages/d4/f8/33b92454789dde8407f156c00303e9a891f1f51a0330b0fad7c909f87692/yarl-1.22.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5c401e05ad47a75869c3ab3e35137f8468b846770587e70d71e11de797d113df", size = 387036, upload-time = "2025-10-06T14:10:22.902Z" }, + { url = "https://files.pythonhosted.org/packages/d9/9a/c5db84ea024f76838220280f732970aa4ee154015d7f5c1bfb60a267af6f/yarl-1.22.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:243dda95d901c733f5b59214d28b0120893d91777cb8aa043e6ef059d3cddfe2", size = 397671, upload-time = "2025-10-06T14:10:24.523Z" }, + { url = "https://files.pythonhosted.org/packages/11/c9/cd8538dc2e7727095e0c1d867bad1e40c98f37763e6d995c1939f5fdc7b1/yarl-1.22.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bec03d0d388060058f5d291a813f21c011041938a441c593374da6077fe21b1b", size = 377059, upload-time = "2025-10-06T14:10:26.406Z" }, + { url = "https://files.pythonhosted.org/packages/a1/b9/ab437b261702ced75122ed78a876a6dec0a1b0f5e17a4ac7a9a2482d8abe/yarl-1.22.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0748275abb8c1e1e09301ee3cf90c8a99678a4e92e4373705f2a2570d581273", size = 365356, upload-time = "2025-10-06T14:10:28.461Z" }, + { url = "https://files.pythonhosted.org/packages/b2/9d/8e1ae6d1d008a9567877b08f0ce4077a29974c04c062dabdb923ed98e6fe/yarl-1.22.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:47fdb18187e2a4e18fda2c25c05d8251a9e4a521edaed757fef033e7d8498d9a", size = 361331, upload-time = "2025-10-06T14:10:30.541Z" }, + { url = "https://files.pythonhosted.org/packages/ca/5a/09b7be3905962f145b73beb468cdd53db8aa171cf18c80400a54c5b82846/yarl-1.22.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c7044802eec4524fde550afc28edda0dd5784c4c45f0be151a2d3ba017daca7d", size = 382590, upload-time = "2025-10-06T14:10:33.352Z" }, + { url = "https://files.pythonhosted.org/packages/aa/7f/59ec509abf90eda5048b0bc3e2d7b5099dffdb3e6b127019895ab9d5ef44/yarl-1.22.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:139718f35149ff544caba20fce6e8a2f71f1e39b92c700d8438a0b1d2a631a02", size = 385316, upload-time = "2025-10-06T14:10:35.034Z" }, + { url = "https://files.pythonhosted.org/packages/e5/84/891158426bc8036bfdfd862fabd0e0fa25df4176ec793e447f4b85cf1be4/yarl-1.22.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e1b51bebd221006d3d2f95fbe124b22b247136647ae5dcc8c7acafba66e5ee67", size = 374431, upload-time = "2025-10-06T14:10:37.76Z" }, + { url = "https://files.pythonhosted.org/packages/bb/49/03da1580665baa8bef5e8ed34c6df2c2aca0a2f28bf397ed238cc1bbc6f2/yarl-1.22.0-cp313-cp313-win32.whl", hash = "sha256:d3e32536234a95f513bd374e93d717cf6b2231a791758de6c509e3653f234c95", size = 81555, upload-time = "2025-10-06T14:10:39.649Z" }, + { url = "https://files.pythonhosted.org/packages/9a/ee/450914ae11b419eadd067c6183ae08381cfdfcb9798b90b2b713bbebddda/yarl-1.22.0-cp313-cp313-win_amd64.whl", hash = "sha256:47743b82b76d89a1d20b83e60d5c20314cbd5ba2befc9cda8f28300c4a08ed4d", size = 86965, upload-time = "2025-10-06T14:10:41.313Z" }, + { url = "https://files.pythonhosted.org/packages/98/4d/264a01eae03b6cf629ad69bae94e3b0e5344741e929073678e84bf7a3e3b/yarl-1.22.0-cp313-cp313-win_arm64.whl", hash = "sha256:5d0fcda9608875f7d052eff120c7a5da474a6796fe4d83e152e0e4d42f6d1a9b", size = 81205, upload-time = "2025-10-06T14:10:43.167Z" }, + { url = "https://files.pythonhosted.org/packages/88/fc/6908f062a2f77b5f9f6d69cecb1747260831ff206adcbc5b510aff88df91/yarl-1.22.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:719ae08b6972befcba4310e49edb1161a88cdd331e3a694b84466bd938a6ab10", size = 146209, upload-time = "2025-10-06T14:10:44.643Z" }, + { url = "https://files.pythonhosted.org/packages/65/47/76594ae8eab26210b4867be6f49129861ad33da1f1ebdf7051e98492bf62/yarl-1.22.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:47d8a5c446df1c4db9d21b49619ffdba90e77c89ec6e283f453856c74b50b9e3", size = 95966, upload-time = "2025-10-06T14:10:46.554Z" }, + { url = "https://files.pythonhosted.org/packages/ab/ce/05e9828a49271ba6b5b038b15b3934e996980dd78abdfeb52a04cfb9467e/yarl-1.22.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cfebc0ac8333520d2d0423cbbe43ae43c8838862ddb898f5ca68565e395516e9", size = 97312, upload-time = "2025-10-06T14:10:48.007Z" }, + { url = "https://files.pythonhosted.org/packages/d1/c5/7dffad5e4f2265b29c9d7ec869c369e4223166e4f9206fc2243ee9eea727/yarl-1.22.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4398557cbf484207df000309235979c79c4356518fd5c99158c7d38203c4da4f", size = 361967, upload-time = "2025-10-06T14:10:49.997Z" }, + { url = "https://files.pythonhosted.org/packages/50/b2/375b933c93a54bff7fc041e1a6ad2c0f6f733ffb0c6e642ce56ee3b39970/yarl-1.22.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2ca6fd72a8cd803be290d42f2dec5cdcd5299eeb93c2d929bf060ad9efaf5de0", size = 323949, upload-time = "2025-10-06T14:10:52.004Z" }, + { url = "https://files.pythonhosted.org/packages/66/50/bfc2a29a1d78644c5a7220ce2f304f38248dc94124a326794e677634b6cf/yarl-1.22.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca1f59c4e1ab6e72f0a23c13fca5430f889634166be85dbf1013683e49e3278e", size = 361818, upload-time = "2025-10-06T14:10:54.078Z" }, + { url = "https://files.pythonhosted.org/packages/46/96/f3941a46af7d5d0f0498f86d71275696800ddcdd20426298e572b19b91ff/yarl-1.22.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c5010a52015e7c70f86eb967db0f37f3c8bd503a695a49f8d45700144667708", size = 372626, upload-time = "2025-10-06T14:10:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/c1/42/8b27c83bb875cd89448e42cd627e0fb971fa1675c9ec546393d18826cb50/yarl-1.22.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d7672ecf7557476642c88497c2f8d8542f8e36596e928e9bcba0e42e1e7d71f", size = 341129, upload-time = "2025-10-06T14:10:57.985Z" }, + { url = "https://files.pythonhosted.org/packages/49/36/99ca3122201b382a3cf7cc937b95235b0ac944f7e9f2d5331d50821ed352/yarl-1.22.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b7c88eeef021579d600e50363e0b6ee4f7f6f728cd3486b9d0f3ee7b946398d", size = 346776, upload-time = "2025-10-06T14:10:59.633Z" }, + { url = "https://files.pythonhosted.org/packages/85/b4/47328bf996acd01a4c16ef9dcd2f59c969f495073616586f78cd5f2efb99/yarl-1.22.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f4afb5c34f2c6fecdcc182dfcfc6af6cccf1aa923eed4d6a12e9d96904e1a0d8", size = 334879, upload-time = "2025-10-06T14:11:01.454Z" }, + { url = "https://files.pythonhosted.org/packages/c2/ad/b77d7b3f14a4283bffb8e92c6026496f6de49751c2f97d4352242bba3990/yarl-1.22.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:59c189e3e99a59cf8d83cbb31d4db02d66cda5a1a4374e8a012b51255341abf5", size = 350996, upload-time = "2025-10-06T14:11:03.452Z" }, + { url = "https://files.pythonhosted.org/packages/81/c8/06e1d69295792ba54d556f06686cbd6a7ce39c22307100e3fb4a2c0b0a1d/yarl-1.22.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:5a3bf7f62a289fa90f1990422dc8dff5a458469ea71d1624585ec3a4c8d6960f", size = 356047, upload-time = "2025-10-06T14:11:05.115Z" }, + { url = "https://files.pythonhosted.org/packages/4b/b8/4c0e9e9f597074b208d18cef227d83aac36184bfbc6eab204ea55783dbc5/yarl-1.22.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:de6b9a04c606978fdfe72666fa216ffcf2d1a9f6a381058d4378f8d7b1e5de62", size = 342947, upload-time = "2025-10-06T14:11:08.137Z" }, + { url = "https://files.pythonhosted.org/packages/e0/e5/11f140a58bf4c6ad7aca69a892bff0ee638c31bea4206748fc0df4ebcb3a/yarl-1.22.0-cp313-cp313t-win32.whl", hash = "sha256:1834bb90991cc2999f10f97f5f01317f99b143284766d197e43cd5b45eb18d03", size = 86943, upload-time = "2025-10-06T14:11:10.284Z" }, + { url = "https://files.pythonhosted.org/packages/31/74/8b74bae38ed7fe6793d0c15a0c8207bbb819cf287788459e5ed230996cdd/yarl-1.22.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ff86011bd159a9d2dfc89c34cfd8aff12875980e3bd6a39ff097887520e60249", size = 93715, upload-time = "2025-10-06T14:11:11.739Z" }, + { url = "https://files.pythonhosted.org/packages/69/66/991858aa4b5892d57aef7ee1ba6b4d01ec3b7eb3060795d34090a3ca3278/yarl-1.22.0-cp313-cp313t-win_arm64.whl", hash = "sha256:7861058d0582b847bc4e3a4a4c46828a410bca738673f35a29ba3ca5db0b473b", size = 83857, upload-time = "2025-10-06T14:11:13.586Z" }, + { url = "https://files.pythonhosted.org/packages/46/b3/e20ef504049f1a1c54a814b4b9bed96d1ac0e0610c3b4da178f87209db05/yarl-1.22.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:34b36c2c57124530884d89d50ed2c1478697ad7473efd59cfd479945c95650e4", size = 140520, upload-time = "2025-10-06T14:11:15.465Z" }, + { url = "https://files.pythonhosted.org/packages/e4/04/3532d990fdbab02e5ede063676b5c4260e7f3abea2151099c2aa745acc4c/yarl-1.22.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:0dd9a702591ca2e543631c2a017e4a547e38a5c0f29eece37d9097e04a7ac683", size = 93504, upload-time = "2025-10-06T14:11:17.106Z" }, + { url = "https://files.pythonhosted.org/packages/11/63/ff458113c5c2dac9a9719ac68ee7c947cb621432bcf28c9972b1c0e83938/yarl-1.22.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:594fcab1032e2d2cc3321bb2e51271e7cd2b516c7d9aee780ece81b07ff8244b", size = 94282, upload-time = "2025-10-06T14:11:19.064Z" }, + { url = "https://files.pythonhosted.org/packages/a7/bc/315a56aca762d44a6aaaf7ad253f04d996cb6b27bad34410f82d76ea8038/yarl-1.22.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3d7a87a78d46a2e3d5b72587ac14b4c16952dd0887dbb051451eceac774411e", size = 372080, upload-time = "2025-10-06T14:11:20.996Z" }, + { url = "https://files.pythonhosted.org/packages/3f/3f/08e9b826ec2e099ea6e7c69a61272f4f6da62cb5b1b63590bb80ca2e4a40/yarl-1.22.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:852863707010316c973162e703bddabec35e8757e67fcb8ad58829de1ebc8590", size = 338696, upload-time = "2025-10-06T14:11:22.847Z" }, + { url = "https://files.pythonhosted.org/packages/e3/9f/90360108e3b32bd76789088e99538febfea24a102380ae73827f62073543/yarl-1.22.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:131a085a53bfe839a477c0845acf21efc77457ba2bcf5899618136d64f3303a2", size = 387121, upload-time = "2025-10-06T14:11:24.889Z" }, + { url = "https://files.pythonhosted.org/packages/98/92/ab8d4657bd5b46a38094cfaea498f18bb70ce6b63508fd7e909bd1f93066/yarl-1.22.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:078a8aefd263f4d4f923a9677b942b445a2be970ca24548a8102689a3a8ab8da", size = 394080, upload-time = "2025-10-06T14:11:27.307Z" }, + { url = "https://files.pythonhosted.org/packages/f5/e7/d8c5a7752fef68205296201f8ec2bf718f5c805a7a7e9880576c67600658/yarl-1.22.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bca03b91c323036913993ff5c738d0842fc9c60c4648e5c8d98331526df89784", size = 372661, upload-time = "2025-10-06T14:11:29.387Z" }, + { url = "https://files.pythonhosted.org/packages/b6/2e/f4d26183c8db0bb82d491b072f3127fb8c381a6206a3a56332714b79b751/yarl-1.22.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:68986a61557d37bb90d3051a45b91fa3d5c516d177dfc6dd6f2f436a07ff2b6b", size = 364645, upload-time = "2025-10-06T14:11:31.423Z" }, + { url = "https://files.pythonhosted.org/packages/80/7c/428e5812e6b87cd00ee8e898328a62c95825bf37c7fa87f0b6bb2ad31304/yarl-1.22.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:4792b262d585ff0dff6bcb787f8492e40698443ec982a3568c2096433660c694", size = 355361, upload-time = "2025-10-06T14:11:33.055Z" }, + { url = "https://files.pythonhosted.org/packages/ec/2a/249405fd26776f8b13c067378ef4d7dd49c9098d1b6457cdd152a99e96a9/yarl-1.22.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:ebd4549b108d732dba1d4ace67614b9545b21ece30937a63a65dd34efa19732d", size = 381451, upload-time = "2025-10-06T14:11:35.136Z" }, + { url = "https://files.pythonhosted.org/packages/67/a8/fb6b1adbe98cf1e2dd9fad71003d3a63a1bc22459c6e15f5714eb9323b93/yarl-1.22.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:f87ac53513d22240c7d59203f25cc3beac1e574c6cd681bbfd321987b69f95fd", size = 383814, upload-time = "2025-10-06T14:11:37.094Z" }, + { url = "https://files.pythonhosted.org/packages/d9/f9/3aa2c0e480fb73e872ae2814c43bc1e734740bb0d54e8cb2a95925f98131/yarl-1.22.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:22b029f2881599e2f1b06f8f1db2ee63bd309e2293ba2d566e008ba12778b8da", size = 370799, upload-time = "2025-10-06T14:11:38.83Z" }, + { url = "https://files.pythonhosted.org/packages/50/3c/af9dba3b8b5eeb302f36f16f92791f3ea62e3f47763406abf6d5a4a3333b/yarl-1.22.0-cp314-cp314-win32.whl", hash = "sha256:6a635ea45ba4ea8238463b4f7d0e721bad669f80878b7bfd1f89266e2ae63da2", size = 82990, upload-time = "2025-10-06T14:11:40.624Z" }, + { url = "https://files.pythonhosted.org/packages/ac/30/ac3a0c5bdc1d6efd1b41fa24d4897a4329b3b1e98de9449679dd327af4f0/yarl-1.22.0-cp314-cp314-win_amd64.whl", hash = "sha256:0d6e6885777af0f110b0e5d7e5dda8b704efed3894da26220b7f3d887b839a79", size = 88292, upload-time = "2025-10-06T14:11:42.578Z" }, + { url = "https://files.pythonhosted.org/packages/df/0a/227ab4ff5b998a1b7410abc7b46c9b7a26b0ca9e86c34ba4b8d8bc7c63d5/yarl-1.22.0-cp314-cp314-win_arm64.whl", hash = "sha256:8218f4e98d3c10d683584cb40f0424f4b9fd6e95610232dd75e13743b070ee33", size = 82888, upload-time = "2025-10-06T14:11:44.863Z" }, + { url = "https://files.pythonhosted.org/packages/06/5e/a15eb13db90abd87dfbefb9760c0f3f257ac42a5cac7e75dbc23bed97a9f/yarl-1.22.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:45c2842ff0e0d1b35a6bf1cd6c690939dacb617a70827f715232b2e0494d55d1", size = 146223, upload-time = "2025-10-06T14:11:46.796Z" }, + { url = "https://files.pythonhosted.org/packages/18/82/9665c61910d4d84f41a5bf6837597c89e665fa88aa4941080704645932a9/yarl-1.22.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:d947071e6ebcf2e2bee8fce76e10faca8f7a14808ca36a910263acaacef08eca", size = 95981, upload-time = "2025-10-06T14:11:48.845Z" }, + { url = "https://files.pythonhosted.org/packages/5d/9a/2f65743589809af4d0a6d3aa749343c4b5f4c380cc24a8e94a3c6625a808/yarl-1.22.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:334b8721303e61b00019474cc103bdac3d7b1f65e91f0bfedeec2d56dfe74b53", size = 97303, upload-time = "2025-10-06T14:11:50.897Z" }, + { url = "https://files.pythonhosted.org/packages/b0/ab/5b13d3e157505c43c3b43b5a776cbf7b24a02bc4cccc40314771197e3508/yarl-1.22.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e7ce67c34138a058fd092f67d07a72b8e31ff0c9236e751957465a24b28910c", size = 361820, upload-time = "2025-10-06T14:11:52.549Z" }, + { url = "https://files.pythonhosted.org/packages/fb/76/242a5ef4677615cf95330cfc1b4610e78184400699bdda0acb897ef5e49a/yarl-1.22.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d77e1b2c6d04711478cb1c4ab90db07f1609ccf06a287d5607fcd90dc9863acf", size = 323203, upload-time = "2025-10-06T14:11:54.225Z" }, + { url = "https://files.pythonhosted.org/packages/8c/96/475509110d3f0153b43d06164cf4195c64d16999e0c7e2d8a099adcd6907/yarl-1.22.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4647674b6150d2cae088fc07de2738a84b8bcedebef29802cf0b0a82ab6face", size = 363173, upload-time = "2025-10-06T14:11:56.069Z" }, + { url = "https://files.pythonhosted.org/packages/c9/66/59db471aecfbd559a1fd48aedd954435558cd98c7d0da8b03cc6c140a32c/yarl-1.22.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:efb07073be061c8f79d03d04139a80ba33cbd390ca8f0297aae9cce6411e4c6b", size = 373562, upload-time = "2025-10-06T14:11:58.783Z" }, + { url = "https://files.pythonhosted.org/packages/03/1f/c5d94abc91557384719da10ff166b916107c1b45e4d0423a88457071dd88/yarl-1.22.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e51ac5435758ba97ad69617e13233da53908beccc6cfcd6c34bbed8dcbede486", size = 339828, upload-time = "2025-10-06T14:12:00.686Z" }, + { url = "https://files.pythonhosted.org/packages/5f/97/aa6a143d3afba17b6465733681c70cf175af89f76ec8d9286e08437a7454/yarl-1.22.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:33e32a0dd0c8205efa8e83d04fc9f19313772b78522d1bdc7d9aed706bfd6138", size = 347551, upload-time = "2025-10-06T14:12:02.628Z" }, + { url = "https://files.pythonhosted.org/packages/43/3c/45a2b6d80195959239a7b2a8810506d4eea5487dce61c2a3393e7fc3c52e/yarl-1.22.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:bf4a21e58b9cde0e401e683ebd00f6ed30a06d14e93f7c8fd059f8b6e8f87b6a", size = 334512, upload-time = "2025-10-06T14:12:04.871Z" }, + { url = "https://files.pythonhosted.org/packages/86/a0/c2ab48d74599c7c84cb104ebd799c5813de252bea0f360ffc29d270c2caa/yarl-1.22.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:e4b582bab49ac33c8deb97e058cd67c2c50dac0dd134874106d9c774fd272529", size = 352400, upload-time = "2025-10-06T14:12:06.624Z" }, + { url = "https://files.pythonhosted.org/packages/32/75/f8919b2eafc929567d3d8411f72bdb1a2109c01caaab4ebfa5f8ffadc15b/yarl-1.22.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:0b5bcc1a9c4839e7e30b7b30dd47fe5e7e44fb7054ec29b5bb8d526aa1041093", size = 357140, upload-time = "2025-10-06T14:12:08.362Z" }, + { url = "https://files.pythonhosted.org/packages/cf/72/6a85bba382f22cf78add705d8c3731748397d986e197e53ecc7835e76de7/yarl-1.22.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c0232bce2170103ec23c454e54a57008a9a72b5d1c3105dc2496750da8cfa47c", size = 341473, upload-time = "2025-10-06T14:12:10.994Z" }, + { url = "https://files.pythonhosted.org/packages/35/18/55e6011f7c044dc80b98893060773cefcfdbf60dfefb8cb2f58b9bacbd83/yarl-1.22.0-cp314-cp314t-win32.whl", hash = "sha256:8009b3173bcd637be650922ac455946197d858b3630b6d8787aa9e5c4564533e", size = 89056, upload-time = "2025-10-06T14:12:13.317Z" }, + { url = "https://files.pythonhosted.org/packages/f9/86/0f0dccb6e59a9e7f122c5afd43568b1d31b8ab7dda5f1b01fb5c7025c9a9/yarl-1.22.0-cp314-cp314t-win_amd64.whl", hash = "sha256:9fb17ea16e972c63d25d4a97f016d235c78dd2344820eb35bc034bc32012ee27", size = 96292, upload-time = "2025-10-06T14:12:15.398Z" }, + { url = "https://files.pythonhosted.org/packages/48/b7/503c98092fb3b344a179579f55814b613c1fbb1c23b3ec14a7b008a66a6e/yarl-1.22.0-cp314-cp314t-win_arm64.whl", hash = "sha256:9f6d73c1436b934e3f01df1e1b21ff765cd1d28c77dfb9ace207f746d4610ee1", size = 85171, upload-time = "2025-10-06T14:12:16.935Z" }, + { url = "https://files.pythonhosted.org/packages/73/ae/b48f95715333080afb75a4504487cbe142cae1268afc482d06692d605ae6/yarl-1.22.0-py3-none-any.whl", hash = "sha256:1380560bdba02b6b6c90de54133c81c9f2a453dee9912fe58c1dcced1edb7cff", size = 46814, upload-time = "2025-10-06T14:12:53.872Z" }, +] + +[[package]] +name = "zipp" +version = "3.23.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" }, +]